wpf - 媒体播放器 mp3 不工作 wpf

标签 wpf mp3

我在 WPF 应用程序中遇到 MediaPlayer 类的问题。
我的项目是这样的:

Project Structure

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

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

最佳答案

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

  • 您已经怀疑的主要问题是文件的错误路径。相对路径是指相对于可执行文件。在开发阶段,它在bin\debug里面文件夹。所以mp3文件的路径应该是"../../AboutDialogSound.mp3" .
  • 另一个问题是声明 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/

    关于wpf - 媒体播放器 mp3 不工作 wpf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21507335/

    相关文章:

    wpf - WPF 中的切换按钮

    wpf - 如何根据控件的属性(Top/Tabstop)设置WPF动画BeginTime

    c# - DataGridTemplateColumn 不绑定(bind) ItemSource (WPF) 中的对象

    java - 如何在播放mp3时获取mp3的URL

    mp3 - 如何使用 ffmpeg 将 mp3 从 x 裁剪为 x+n?

    Java如何播放从文件选择器中选择的mp3文件

    ffmpeg - 无法使用 ffmpeg 将 .mp3 转换为 .m4a

    c# - DispatcherTimer 未在 wpf 应用程序中触发

    wpf - WPF-调度程序PushFrame()

    python - Python Pyaudio —如何播放通过HTTP流传输的文件