我正在使用IVMRWindowlessControl9
播放视频,即WindowlessControl
w / VMR-9
。当我最初设置视频时遇到困难时,我注意到在网上找到了很多这样的代码在Window的Paint处理程序中有这段代码:
IntPtr hdc = e.Graphics.GetHdc();
int hr = 0;
hr = windowlessCtrl.RepaintVideo(this.Handle, hdc);
e.Graphics.ReleaseHdc(hdc);
我的视频正常播放但我没有上述代码。上面的代码做了什么,有没有使用它?
答案 0 :(得分:1)
在大多数情况下,您无需显式重新绘制视频,因为视频渲染器会自动执行此操作。是的,如果托管窗口需要 - 出于任何原因 - 请求强制重放,例如WM_PAINT
窗口消息处理程序的一部分,那么RepaintVideo
方法就在您的服务中。
在MSDN上查看更多信息,VMR Windowless Mode:
在播放过程中,应用程序应通知VMR 以下Windows消息:
WM_PAINT:调用IVMRWindowlessControl :: RepaintVideo来重绘 图像。
答案 1 :(得分:1)
至于它的作用:
如果使用目标颜色键绘制视频,则会将键颜色绘制到目标窗口中。
如果图像是letterboxed,或者部分图像落在另一台显示器上,它将绘制图像未覆盖的部分。
因此,如果根本没有完成,你可能不会看到任何差异,如果这些都不适用的话。