可以';t在WP7模拟器上使用MediaElement播放mp3

本文关键字:MediaElement mp3 播放 模拟器 WP7 可以 | 更新日期: 2023-09-27 18:19:32

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

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

但什么都没发生,我必须在UI中创建一个"真正的"控件吗?我只想在事件发生时播放这个声音,我没有错误或什么都没有,无论mp3是否在默认文件夹中。

可以';t在WP7模拟器上使用MediaElement播放mp3

它没有播放的原因是因为您没有将它添加到可视化树中。以编程方式创建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();

这取决于声明mediaElement后代码中发生的情况。目前,一旦您在中声明它的方法结束,mediaElement就会脱离作用域,并有资格进行垃圾收集。

您需要:

  • mediaElement作为某个内容的父级,也许是您的UI
  • 使mediaElement成为类上的静态字段

话虽如此,Emulator是否支持通过MediaElement播放?