0

以下是问题的描述:
我希望能够在我正在处理的项目中播放视频......最简单的方法是使用 PInvoke 和 winmm.dll。我用来打开文件的一段代码是:

public void OpenFile()
    {
        if (!this.opened)
        {
            this.opened = this.paused = true;

            command = "open \"" + videoName + "\" type mpegvideo alias VideoPlayer";
            mciSendString(command, null, 0, IntPtr.Zero);

            command = "set VideoPlayer time format miliseconds";
            mciSendString(command, null, 0, IntPtr.Zero);

            command = "set VideoPlayer seek exactly on";
            mciSendString(command, null, 0, IntPtr.Zero);
        }
        else
        {
            this.CloseVideo();
            this.OpenFile();
        }
    }

以及播放文件的代码:

command = String.Format("play VideoPlayer notify");
mciSendString(command, null, 0, IntPtr.Zero);

问题是视频文件已打开并播放但在新窗口中。有没有办法让它在我调用该方法的窗口中播放?
我尝试搜索 msdn,我确实找到了这个。如果您在lpszPlayFlags下查看,则标志窗口

指定播放应使用与设备实例关联的窗口。这是默认设置。

即使我确实使用了该标志,视频仍然会在新窗口中播放。显然,我做错了什么。如果有人知道我的错误是什么并且知道如何解决这个“问题”,那将不胜感激。
谢谢!
此致。

4

0 回答 0