为什么我可以做这样的事情没有任何问题((IVMRFilterConfig9)pVideoMixingRenderer1).SetRenderingMode(VMR9Mode.Windowless);但当我尝试这个
IVMRWindowlessControl9 vc1 = (IVMRWindowlessControl9)pVideoMixingRenderer1;是否存在无效的强制转换异常( HRESULT: 0x80004002 (E_NOINTERFACE))?
顺便说一句,VMR9渲染器本身工作得很好。
发布于 2016-10-15 16:01:11
行为有准确的文档记录。MSDN
VMR-9仅在无窗口和无渲染器模式下支持此界面。在窗口模式下,
QueryInterface返回E_NOINTERFACE。
您显示的这行代码本应切换到无窗口模式,但这有其自身的局限性。当处于无窗口模式时,界面将可用。
DirectShow.NET示例提供了一些使用IVMRWindowlessControl9的示例,您可以查看它们以正确地使用接口。
发布于 2016-10-15 20:51:56
我想通了。看起来你必须在没有连接的情况下将渲染器添加到你的图形中,然后打开无窗口模式来访问无窗口控件。然后你必须设置无窗口控制参数,当所有这些都完成后,渲染器的输入引脚就可以连接起来了。我试着按错误的顺序做,这是我最大的错误。
https://stackoverflow.com/questions/40039082
复制相似问题