2011-07-04 126 views
0

我的問題一個數組如下:播放的聲音,Windows Phone 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) 

然後,您可以選擇一個隨機數,使用Random類,從04(含)。這意味着所選的聲音將是隨機的,而不是以任何特定順序播放。 玩,你可以只使用上面的代碼,但更換FromStream行是這樣的:

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

真棒。謝謝你KeyboardP。聲音波形不超過8kbs,所以這不應該是一個問題。感謝您幫助我瞭解這些功能。我在代碼中尋找一個隨機數字生成器,這是完美的。 – topcoderwannabe

+0

嗯,流不是一個有效的指令或程序集...但我使用:使用Microsoft.Xna.Framework; 使用Microsoft.Xna.Framework.Audio;有什麼想法嗎? – topcoderwannabe

+0

@topcoverwannabe - 該代碼必須位於方法中,不能將其放在文件的頂部。 –