1

谁能告诉我在 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甚至是最适合我的场景的东西?

这会属于背景音频类别吗?我已经通读了这个例子,但对于我想做的事情来说似乎有点过分了。

我也读过关于使用 XNASoundEffect来完成这项工作的文章,但是我必须将我的 .mp3 文件转换为 .wav(这不一定是问题,但如果我不这样做,我宁愿不这样做'不需要)。

谁能告诉我我在上面的示例中做错了什么,或者指导我找到更好的解决方案来播放快速 <1s 音频?

4

2 回答 2

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);
于 2013-05-12T22:48:09.583 回答
0

我很幸运只是在我的应用程序中编写了这段代码。但它可能在您的上下文中效果不佳,尽管试一试。

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

于 2013-05-13T03:44:11.597 回答