在 directshow 中丢失播放窗口句柄/主表面?
我正在使用 WPF 和 Directshowlib 将视频渲染到 HWndHost 对象。我遇到了两个问题,可能是相关的。
如果我启动应用程序,然后切换到全屏运行的另一个应用程序,例如魔兽世界,则应用程序在调用 IVMRFilterConfig::SetRenderingMode(VMRMode.Windowless); 时返回错误:
0x887600E1,DDERR_NOEXCLUSIVEMODE,操作要求应用程序具有独占模式但该应用程序没有独占模式。
在其他情况下,当视频窗口正常并且正在播放视频时,如果我通过以管理员身份启动另一个应用程序等方式导致 UAC 对话框,或者如果我锁定屏幕,我也会丢失播放窗口。我的视频渲染窗口变灰,视频播放停止(我不再收到媒体结束事件)。我没有收到任何错误,只有一个灰色的渲染窗口。
在这两种情况下,我该如何确保获得并保留视频窗口?为什么我会丢失视频窗口?
谢谢!
I am using WPF and Directshowlib to render video to a HWndHost object. I'm having two problems with this, probably related.
If I start up my application and then switch to another app running fullscreen, e.g. World of Warcraft, the application returns an error when calling IVMRFilterConfig::SetRenderingMode(VMRMode.Windowless);:
0x887600E1, DDERR_NOEXCLUSIVEMODE, Operation requires the application to have exclusive mode but the application does not have exclusive mode.
In other circumstances, when the video window is fine and video playing back, if I cause a UAC Dialog by, for example, starting another application as Administrator or if I lock the screen I also lose the playback window. My video rendering window goes grey and video playback just stops (I get no media ended events any more). I get no error, just a grey rendering window.
What can I do to ensure I get and keep a video window in both these circumstances? Why am I losing the video window anyway?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论