2011-07-04 120 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 - 该代码必须位于方法中,不能将其放在文件的顶部。 –