2011-06-02 13 views
5

SoundEffectクラスのXNAを参照できることは知っていますが、それはこれまでのことですが、私が行ったことよりも優れた方法があればやってwp7用のSilverlightでサウンドエフェクトを再生するために使用するもの

私のテスト用のアプリケーションでは、1回ボタンを押してから1秒間に20音ずつ発音します。私はさまざまなテクニックで遊んでいますが、可能であれば、サウンドエフェクトベースのアプリケーションを作る前に、プロフェッショナルがこれをやっていく方法を知りたいのですが。最初にサウンドエフェクトをロードする、ボタンを押したときにインスタンスをロードするなど、ほとんど何も役に立ちません。

ありがとうございました。

+0

あなたがのMediaElementをチェックしましたか? – Shanadas

+0

私はMediaElementでいくつかの読書をしましたが、短い音ではなく、バックグラウンドミュージックなどの長いトラックで使用することを推奨していません。 – Tom

+0

私はsoundeffectはmp3でないwavファイルストリーム以外 – Gluip

答えて

2

私があなただったら、私はこのクラスは、XNAの統合を使用したとSoundEffect オブジェクトを再生するために使用されるPhoneyTools SoundEffectPlayer

を使用します。 プレーヤーは、 サウンドエフェクトを再生するのに十分な長さである必要があります。したがって、 は、メソッド外でスコープを設定することが一般的です。たとえば :

public partial class MediaPage : PhoneApplicationPage 
{ 
    // ... 

    SoundEffectPlayer _player = null; 

    private void playButton_Click(object sender, RoutedEventArgs e) 
    { 
    var resource = Application.GetResourceStream(new Uri("alert.wav", UriKind.Relative)); 
    var effect = SoundEffect.FromStream(resource.Stream); 
    _player = new SoundEffectPlayer(effect); 
    _player.Play(); 

    } 
} 
+0

私はphoneytoolsを使って同時に4つの異なるサウンドを再生しようとしましたが、それはまだ遅れています。私は下のポストの例も試してみました。なぜ私はこの遅れを得ているのか分かりません。エミュレータと電話の両方で。 – Tom

2

AppHubの公式サンプルが良い例だと思います。複数のサウンドを再生する方法を示します。サンプルはhereから直接ダウンロードできます。

このサンプルでは、​​Windows Phone用の Silverlightアプリケーションで同時に 複数のサウンドを再生するには XNA FrameworkのとSoundEffectと SoundEffectInstanceクラスを使用する方法を示します。また、 に簡単な方法を示して、 FrameworkDispatcher.Updateを呼び出して XNA フレームワークの内部のゲームループをシミュレートするようにDispatchTimerを設定します。最後に、 は、WaveEffectクラス で再生できるWaveオーディオファイル をストリームにロードする方法を示します。

関連する問題