【问题标题】:Can't play mp3 with MediaElement on WP7 emulator无法在 WP7 模拟器上使用 MediaElement 播放 mp3
【发布时间】:2012-01-06 12:13:38
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      这取决于您的代码中发生的情况 mediaElement 被声明。目前,一旦您声明的方法结束,mediaElement 将超出范围并成为垃圾回收的条件。

      您需要:

      • mediaElement 到某些东西,也许是你的 UI
      • mediaElement 设为类的静态字段

      说了这么多,是通过模拟器支持的MediaElement播放吗?

      【讨论】:

      • Mediaelement 变量实际上是一个全局变量,因此它应该保持在范围内,只需在前面键入 var 以使其更易于阅读。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多