2

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

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

这里进程没有退出,文件仍然继续运行。如何关闭应用程序?

4

2 回答 2

1

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

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

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

于 2012-01-27T22:36:39.250 回答
0

我认为您需要通过调用 Marshal.ReleaseComObject 来关闭 COM 对象。COM 不知道您将永远不会再次使用播放器,因此它无法关闭该进程。

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

于 2012-01-27T21:59:28.790 回答