我知道我可以为SoundEffect类引用XNA,这就是我到目前为止所做的事情,但我想知道是否有比我一直做得更好的方法。
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using (var stream = TitleContainer.OpenStream("test.mp3"))
{
var effect = SoundEffect.FromStream(stream);
FrameworkDispatcher.Update();
effect.Play();
}
对于我的测试应用程序,每按一次按钮,我就会播放20个声音。我正在玩不同的技术,但如果可能的话,我想知道专业人士在制作基于声音效果的应用程序之前是如何做到这一点的。诸如首先加载声音效果或将按钮按下的实例加载的小事情将会有所帮助。
感谢。
答案 0 :(得分:2)
我认为一个很好的例子就是AppHub上的官方样本。它演示了如何播放多个声音。您可以直接从here下载示例。
此示例演示了如何使用 XNA Framework的SoundEffect和 SoundEffectInstance类要播放 a。同时发出多个声音 适用于Windows的Silverlight应用程序 电话。它还显示了一种简单的方法 设置DispatchTimer来调用 FrameworkDispatcher.Update以便 模拟XNA的游戏循环 框架的内部。最后,它 显示如何加载wave音频文件 进入可以播放的流 SoundEffect类。
答案 1 :(得分:2)
如果我是你,我会使用PhoneyTools SoundEffectPlayer
此类用于播放SoundEffect 使用XNA集成的对象。该 球员必须活得足够长 声音效果发挥所以很常见 让它在方法之外的范围。 例如:
public partial class MediaPage : PhoneApplicationPage
{
// ...
SoundEffectPlayer _player = null;
private void playButton_Click(object sender, RoutedEventArgs e)
{
var resource = Application.GetResourceStream(new Uri("alert.wav", UriKind.Relative));
var effect = SoundEffect.FromStream(resource.Stream);
_player = new SoundEffectPlayer(effect);
_player.Play();
}
}