【问题标题】:mediaplayer mp3 not working wpf媒体播放器 mp3 不工作 wpf
【发布时间】:2014-02-25 18:10:16
【问题描述】:

我在 WPF 应用程序中遇到了 MediaPlayer 类的问题。
我的项目如下所示:

问题是:当我的 AboutDialog 初始化并出现时,它不播放 AboutDialogSound.mp3。我认为问题是 Uri 字符串格式,我尝试更改它但仍然没有工作。

对不起,我英语不好。请帮我解决这个问题。提前致谢。

【问题讨论】:

    标签: wpf mp3


    【解决方案1】:

    确保资源(mp3 文件)在属性中复制到输出目录时“始终复制”。

    player.Open(new Uri(System.Environment.CurrentDirectory + @“\Resources\filename.mp3”)); 
    player.Play();
    

    【讨论】:

      【解决方案2】:

      至少,您的代码中有两个问题,关于您如何尝试使用MediaPlayer 播放 mp3 文件:

      1. 您已经怀疑的主要问题是文件路径错误。相对路径意味着相对于可执行文件。在开发阶段,它位于bin\debug 文件夹中。所以 mp3 文件的路径应该是"../../AboutDialogSound.mp3"
      2. 另一个问题是将MediaPlayer 对象声明为局部变量。通过这样做,对象将在变量声明的方法(在这种情况下为AboutDialog 构造函数)完成后不久被垃圾收集。因此,如果您设法解决了第一个问题,您将听到音频文件播放片刻,然后突然停止,因为MediaPlayer 正在播放它 GC-ed。将其声明为全局变量而不是本地变量。

      提示:要检查MediaPlayer 中的故障(例如由于路径错误而找不到文件),请尝试订阅MediaFailed 事件。因为MediaPlayer 没有抛出异常,而是触发MediaFailed 事件。

      public partial class AboutDialog
      {
          private MediaPlayer player;
      
          public AboutDialog()
          {
              player = new MediaPlayer();
              player.MediaFailed += (o, args) =>
                                        {
                                            MessageBox.Show("Media Failed!!");
                                        };
              player.Open(new Uri("../../AboutDialogSound.mp3", UriKind.RelativeOrAbsolute));
              player.Play();
          }
          .....
      }
      

      参考:http://www.wpf-tutorial.com/audio-video/playing-audio/

      【讨论】:

      • 谢谢。你提到的第一个问题解决了我的问题。我将我的 mp3 文件复制到 /bin 文件夹,然后窗口在加载后立即播放声音:D
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多