有人能告诉我在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音频?
答案 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();