用什么来为wp7在silverlight中播放音效

Tom*_*Tom 5 c# audio silverlight effect windows-phone-7

我知道我可以为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();
}
Run Code Online (Sandbox Code Playgroud)

对于我的测试应用程序,每按一次按钮,我就会播放20个声音.我正在玩不同的技术,但如果可能的话,我想知道专业人士在制作基于声音效果的应用程序之前是如何做到这一点的.诸如首先加载声音效果或将按钮按下的实例加载的小事情将是有帮助的.

谢谢.

Luk*_*don 2

如果我是你,我会使用PhoneyTools SoundEffectPlayer

此类用于使用 XNA 集成来播放 SoundEffect 对象。玩家必须存活足够长的时间才能播放音效,因此通常将其范围限制在方法之外。例如:

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();

  }
}
Run Code Online (Sandbox Code Playgroud)