在WP7模拟器上无法使用MediaElement播放mp3

时间:2012-01-06 12:13:38

标签: c# .net xaml windows-phone-7

我有一个应用程序,我有一些预先录制的文本到语音(因为没有默认支持文本到语音)然后我想像这样播放它们

var mediaElement = new MediaElement();
mediaElement.Source = new Uri("sound.mp3", UriKind.Relative);
mediaElement.Position = new TimeSpan(0);
mediaElement.Play();

但没有任何反应,我是否必须创造一个真正的"在我的UI中控制?我只是想在事件发生时播放这个声音,我没有任何错误或没有任何错误,如果mp3在默认文件夹中则没有。

2 个答案:

答案 0 :(得分:4)

它没有播放的原因是因为你没有将它添加到Visual Tree中。以编程方式创建MediaElement时,需要将其添加到树中的某个位置。您必须在UI中创建“真正的控件”,但不必看到它。

var mediaElement = new MediaElement();
mediaElement.Source = new Uri("sound.mp3", UriKind.Relative);
mediaElement.Position = new TimeSpan(0);
LayoutRoot.Children.Add(mediaElement); //Add to visual tree
mediaElement.Play();

答案 1 :(得分:0)

这取决于声明 mediaElement后代码中发生的情况。目前,只要您声明它的方法结束,mediaElement将超出范围,并有资格进行垃圾回收。

您需要:

  • mediaElement为某事,可能是您的用户界面
  • 使mediaElement成为课堂上的静态字段

所有这一切,都是通过模拟器支持的MediaElement播放?