以下是问题的描述:
我希望能够在我正在处理的项目中播放视频......最简单的方法是使用 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下查看,则标志窗口
指定播放应使用与设备实例关联的窗口。这是默认设置。
即使我确实使用了该标志,视频仍然会在新窗口中播放。显然,我做错了什么。如果有人知道我的错误是什么并且知道如何解决这个“问题”,那将不胜感激。
谢谢!
此致。