为什么windows媒体播放器没有与播放器一起关闭.Close()方法

本文关键字:Close 方法 一起 播放器 媒体播放器 windows 为什么 | 更新日期: 2023-09-27 18:21:35

我正在一个简单的控制台应用程序中创建一个媒体播放器对象,以播放一些文件。尽管媒体播放器已成功启动,但当我使用close()方法时,该过程仍在运行,媒体播放器窗口不会关闭。需要做什么?这是我写的代码。。

WindowsMediaPlayer player= new WindowsMediaPlayer();
player.OpenPlayer("c:''abc.wmv");
Thread.Sleep(2000);
player.controls.stop();
player.close();

在这里,进程不会退出,文件仍在运行。如何关闭应用程序?

为什么windows媒体播放器没有与播放器一起关闭.Close()方法

自动化接口没有强制玩家退出的方法。不太理想的方法是杀死它:

        var prc = Process.GetProcessesByName("wmplayer");
        if (prc.Length > 0) prc[prc.Length - 1].Kill();

更好的鼠标陷阱是将播放器嵌入到您自己的GUI中,使用Winforms很容易做到。

我认为你需要通过调用Marshal.ReleaseComObject来关闭COM对象。COM不知道你再也不会使用播放器了,所以它无法关闭进程。

不要依赖垃圾收集,因为如果没有内存压力,它可能永远不会发生。手动调用Marshal.ReleaseComObject。