播放单音音频文件的最佳方法?

时间:2013-05-12 22:16:56

标签: audio windows-phone-8 windows-phone mediaelement soundeffect

有人能告诉我在Windows Phone 8应用中播放单音,音频(.mp3)文件的最佳方法吗?想想一个钢琴应用程序,每个按键代表一个按钮,每个按钮会发出不同的音调。

我正在寻找最有效的解决方法 - 我有8个不同的按钮,在敲击时需要播放不同的音色。

我尝试使用MediaElement

MediaElement me;

public MainPage()
{
    InitializeComponent();

    me = new MediaElement();
    me.AutoPlay = false;
    me.Source = new Uri("/Sounds/Sound1.mp3", UriKind.Relative);

    btnPlay.Click += btnPlay_Click;

}

private void btnPlay_Click(object sender, EventArgs e)
{
    me.Play();
}

但是没有任何事情发生在模拟器或设备上(使用Lumia 822进行测试)。我在这里做错了吗?看起来应该很简单。或者使用MediaElement甚至是我的场景中最好用的东西?

这会属于Background Audio类吗?我已经阅读了这个例子,但对于我想要做的事情来说似乎有点过分了。

我也读过关于使用XNA的SoundEffect来完成这项工作,但后来我have to convert my .mp3 files to .wav(这不一定是个问题,但我宁愿不通过它,如果我不需要)。

任何人都可以告诉我上面的例子中我做错了什么,或者引导我找一个更好的解决方案来播放快速的< 1s音频?

2 个答案:

答案 0 :(得分:3)

我之前遇到此问题MediaElement没有播放音频文件。经过多次尝试后,我发现只有在xaml中定义并且AutoPlay设置为true才会播放。

尝试在xaml中定义它,或者只需将其添加到LayoutRoot中。

  var me = new MediaElement();
  LayoutRoot.Children.Add(me);
  me.AutoPlay = true;
  me.Source = new Uri("Sound/1.mp3", UriKind.Relative);

答案 1 :(得分:0)

我在我的应用程序中执行此代码时运气良好。但是在你的背景下它可能不会起作用,但要给它一个旋转。

mediaElement.Source = new Uri(“/ Audio /”+ songID.ToString()+“。mp3”,UriKind.Relative);                 mediaElement.Play();