是否可以让winmm.dll以父窗体(窗口)播放视频,而不是使用mciSendString()在新窗口中打开它?

时间:2013-01-25 19:49:48

标签: c# pinvoke mcisendstring

以下是问题的描述:
我希望能够在我正在处理的项目中播放视频......最简单的方法是使用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,但确实找到了this。如果您查看 lpszPlayFlags 下的标志窗口

  

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

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

0 个答案:

没有答案