播放一系列声音,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 类从04(含)选择一个随机数。这意味着选择的声音将是随机的,而不是以任何特定的顺序播放。 要玩,您可以使用上面的代码,但将 FromStream 行替换为如下内容:

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

【讨论】:

太棒了。谢谢键盘P。声音波形不超过 8kbs,所以这应该不是问题。感谢您也帮助我了解这些功能。我到处寻找代码中的随机数生成器,这是完美的。 嗯,Stream 不是有效的指令或程序集......但我正在使用:使用 Microsoft.Xna.Framework;使用 Microsoft.Xna.Framework.Audio;有什么想法吗? @topcoverwannabe - 代码必须在一个方法中,你不能把它放在文件的顶部。 @topcoderwannabe - StreamSystem.IO 命名空间的一部分,因此请尝试在类的顶部添加 using System.IO;

以上是关于播放一系列声音,windows phone 7的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows Phone 8 中播放声音片段

windows phone 7中的循环声音

Windows-Phone-7:检查 soundEffectInstance 的实例是不是正在播放

windows phone 上的音频路由?

如何在 Windows Phone 8 中播放短信提示音

windows phone 上退出应用程序后恢复音乐