2011-07-04 8 views
0

は、私の質問は以下の通りです:は、音の配列を再生する、Windowsの電話7

単一のボタンがそれらを再生することができるように、私は、音の配列を設定するにはどうすればよいですか?私は5つのwav(sounds1.wav、sounds2.wav .... sounds5.wav)を持っていて、理想的にはそれらがセットオーダーの代わりにランダムであることを望んでいますが、それが可能かどうかは全く考えていません。

私は基礎としてこのコードを使用しています:

var stream = TitleContainer.OpenStream("Sounds/sound1.wav"); 
    var effect = SoundEffect.FromStream(stream); 
    FrameworkDispatcher.Update(); 
    effect.Play(); 

すべてのヘルプは高く評価されます。ありがとうございました!

答えて

1

ストリームの配列に格納することはできますが、wavファイルが大きい場合は、90mbのメモリ使用制限を超えている可能性があるため、これを行うことをお勧めします。

Stream[] myStreamArray = new Stream[5]; 
myStreamArray[0] = TitleContainer.OpenStream("Sounds/sound1.wav"); 
//etc.. (you could use a for loop if your sounds are named in a pattern) 

その後、0から4(包括的)に、Randomクラスを使用して、乱数を選ぶことができます。これは、選択したサウンドが特定の順序で再生するのではなく、ランダムであることを意味します。再生するに 、あなただけ上記のコードを使用しますが、このような何かにFromStream行を置き換えることができます。

var effect = SoundEffect.FromStream(myStreamArray[randomNumber]); 
+0

恐ろしいです。ありがとうKeyboardP。サウンドウェーブは8kbsを超えないので、これは問題ではありません。これらの機能についてもご理解いただきありがとうございます。コード内で乱数ジェネレータを探していましたが、これは完璧です。 – topcoderwannabe

+0

Hmm、Streamは有効なディレクティブまたはアセンブリではありませんが、使用しています:Microsoft.Xna.Frameworkを使用しています。 Microsoft.Xna.Framework.Audioを使用しています。何かご意見は? – topcoderwannabe

+0

@topcoverwannabe - そのコードはメソッド内になければなりません。ファイルの先頭に置くことはできません。 –

関連する問題