2016-10-14 2 views
0

Почему я могу сделать что-то вроде этого без проблем ((IVMRFilterConfig9)pVideoMixingRenderer1).SetRenderingMode(VMR9Mode.Windowless); , но когда я пытаюсь этоC# IVMRWindowlessControl9 запрос не удалось

IVMRWindowlessControl9 vc1 = (IVMRWindowlessControl9)pVideoMixingRenderer1; 

я недействительная исключение литая (HRESULT: 0x80004002 (E_NOINTERFACE))?

Сам рендерер VMR9 работает просто отлично.

ответ

0

Поведение точно документировано. MSDN:

VMR-9 поддерживает этот интерфейс только в режимах без окон и без вывода. В оконном режиме QueryInterface возвращает E_NOINTERFACE.

Вы показываете линию, которая предположительно переключается в режим без окон, но у этого есть свои ограничения. В режиме без окон интерфейс будет доступен.

Образцы DirectShow.NET предлагают несколько вариантов использования IVMRWindowlessControl9, вы можете проверить их для правильного использования интерфейса.

0

Я понял. Похоже, вы должны добавить рендереры на свой график, не подключая их, затем включите режим без окон, чтобы получить доступ к управлению без окна. Затем вы должны установить параметры управления без окна, и когда все это будет сделано, можно подключить входные штыри визуализаторов. Я пытался сделать это в неправильном порядке, и это была моя самая большая ошибка.

Смежные вопросы