播放一系列声音,windows phone 7
Posted
技术标签:
【中文标题】播放一系列声音,windows phone 7【英文标题】:Playing an array of sounds, windows phone 7 【发布时间】:2011-07-04 01:05:28 【问题描述】:我的问题如下:
如何设置声音数组,以便单个按钮可以播放它们?我有 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 类从0
到4
(含)选择一个随机数。这意味着选择的声音将是随机的,而不是以任何特定的顺序播放。
要玩,您可以使用上面的代码,但将 FromStream
行替换为如下内容:
var effect = SoundEffect.FromStream(myStreamArray[randomNumber]);
【讨论】:
太棒了。谢谢键盘P。声音波形不超过 8kbs,所以这应该不是问题。感谢您也帮助我了解这些功能。我到处寻找代码中的随机数生成器,这是完美的。 嗯,Stream 不是有效的指令或程序集......但我正在使用:使用 Microsoft.Xna.Framework;使用 Microsoft.Xna.Framework.Audio;有什么想法吗? @topcoverwannabe - 代码必须在一个方法中,你不能把它放在文件的顶部。 @topcoderwannabe -Stream
是 System.IO
命名空间的一部分,因此请尝试在类的顶部添加 using System.IO;
。以上是关于播放一系列声音,windows phone 7的主要内容,如果未能解决你的问题,请参考以下文章