2016-10-14 83 views
0

爲什麼我可以做這樣的事情,沒有任何問題 ((IVMRFilterConfig9)pVideoMixingRenderer1).SetRenderingMode(VMR9Mode.Windowless); 但是當我嘗試這個C#IVMRWindowlessControl9查詢失敗

IVMRWindowlessControl9 vc1 = (IVMRWindowlessControl9)pVideoMixingRenderer1; 

我有無效轉換異常(HRESULT:0x80004002(E_NOINTERFACE))?

VMR9渲染器本身工作得很好btw。

回答

0

行爲準確記錄。 MSDN

VMR-9僅在無窗口和無模式下支持此接口。在窗口模式下,QueryInterface返回E_NOINTERFACE

您正在顯示一條線,該線可能會切換到無窗口模式,但這有其自身的侷限性。在無窗口模式下,該界面將可用。

DirectShow.NET示例提供了一些使用IVMRWindowlessControl9的示例,您可以檢查它們是否適合使用接口。

0

我想通了。看起來您必須將渲染器添加到您的圖形,而無需連接它們,然後啓用無窗口模式以訪問無窗口控制。然後你必須設置無窗口控制參數,當所有這些都完成後,可以連接渲染器的輸入引腳。我試圖以錯誤的順序去做,那是我最大的錯誤。