c# - WMPLib 经常停止播放

标签 c# backgroundworker wmplib

我用以下方法播放mp3和m4as:

private void playmp3(string path)
    {
        WMPLib.WindowsMediaPlayer a = new WMPLib.WindowsMediaPlayer();
        a.URL = path;
        a.controls.play();
    }

通常当我播放它们时,它们只播放大约 5 秒或更短的时间,然后停止播放。如果我以任何方式与(WPF)表单交互,它也会停止。我从 BackgroundWorker 调用 playmp3

编辑:在我移动鼠标后,它实际上停止播放大约十分之一秒。

最佳答案

您还需要在玩家状态中进行这样的编码。

Player = new WMPLib.WindowsMediaPlayer();
            Player.PlayStateChange +=
                new WMPLib._WMPOCXEvents_PlayStateChangeEventHandler(Player_PlayStateChange);
            Player.MediaError +=
                new WMPLib._WMPOCXEvents_MediaErrorEventHandler(Player_MediaError);
            Player.URL = "FC.wav";
            Player.controls.play();



   private void Player_PlayStateChange(int NewState)
   {
       if ((WMPLib.WMPPlayState)NewState == WMPLib.WMPPlayState.wmppsStopped)
       {

       }
   }

   private void Player_MediaError(object pMediaObject)
   {
       MessageBox.Show("Cannot play media file.");
       this.Close();
   }

关于c# - WMPLib 经常停止播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14350024/

相关文章:

c# - 使用 .runsettings 文件时,代码覆盖率中不包含异步方法

c# - 完整组满足条件的 LINQ 查询

c# - 在 BackgroundWorker 处理程序中使用参数

ruby - 在服务器进程中创建工作线程是个坏主意吗?

c# - MP3在单独的线程中播放

c# - 将字符串分配给 HtmlElement 对象的 InnerHtml

c# - 为什么调整 png 图像的大小会失去透明度?

.net - 在VB.NET中调用hide方法后我可以使用backgroundWorker吗

c# - 在 C# 桌面应用程序中播放视频

api - Zune API ZuneCore.dll