c# - 没有错误或异常,但是代码无法在WPF应用程序中播放音频文件

标签 c# wpf audio

我使用此代码在用C#编写的WPF应用程序中播放音频(.wav)文件。这是我播放音频文件的代码:

Uri uri = new Uri(@"C:\Users\naseem\source\repos\ChatBotAssistant\ChatBotAssistant\bin\Debug\Speech.wav");
MediaPlayer player = new MediaPlayer();
player.Open(uri);
player.Play();
没有错误,也没有异常,但它不会播放音频文件。

最佳答案

当无法打开媒体文件时,MediaPlayer将不会引发异常。通常,您应该使用以下事件来规避MediaPlayer的播放和加载问题。

  • MediaOpened-在打开媒体时发生。
  • Media Failed-遇到错误时发生。

  • 触发MediaOpened时,您可以安全地调用Play,而触发MediaFailed时,则可以处理错误,因为此时未加载媒体。 ExceptionEventArgs将包含发生的Exception
    private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
    {
       var uri = new Uri(@"C:\Users\naseem\source\repos\ChatBotAssistant\ChatBotAssistant\bin\Debug\Speech.wav");
       var player = new MediaPlayer();
       player.MediaOpened += OnMediaOpened;
       player.MediaFailed += OnMediaFailed;
       player.Open(uri);
    }
    
    private void OnMediaOpened(object sender, EventArgs e)
    {
       var player = (MediaPlayer)sender;
       player.Play();
    }
    
    private void OnMediaFailed(object sender, ExceptionEventArgs e)
    {
       var exception = e.ErrorException;
       // Handle exception
    }
    

    关于c# - 没有错误或异常,但是代码无法在WPF应用程序中播放音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63216099/

    相关文章:

    c# - 找不到扩展方法

    c# - 使用 C# 的 Windows Phone 7 上的 NSUserDefaults 等价物是什么?

    c# - 如何获取 WPF 视觉对象的子边界框,不包括父对象

    android - 播放短促的声音

    python - 尽管下载了ffmpeg并设置了路径变量python,但没有后端错误

    c# - 无法查看 ascx 文件中的代码隐藏

    c# - Request.IsHttps 和 Request.Scheme 显示请求是 HTTP 而不是 HTTPS

    c# - 使用 WIC 快速创建符合 EXIF 方向标签的缩小位图

    wpf - MVVM 交互下降触发器

    c++ - Juce 卷积混响插件中的湿/干控制