Отображение активного окна для видео в пользовательском распределителе - PullRequest
1 голос
/ 13 октября 2009

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

Ответы [ 2 ]

1 голос
/ 27 октября 2009

Обычно видео воспроизводится в окне ActiveMovie, когда декодер и средство визуализации не могут договориться о соединении, поэтому построитель графика использует средство визуализации по умолчанию (если вы автоматически строите свой график с помощью метода RenderFile), которое воспроизводится отдельно. Проверьте ваш код в методе InitializeDevice вашего распределителя, если InitializeDevice всегда терпит неудачу, тогда ваше видео будет отображаться в средстве визуализации по умолчанию.

Убедитесь, что вы используете режим VMR9Mode_Renderless. И если вы не используете микширование в VMR7 / 9, я предлагаю удалить любые вызовы метода SetNumberOfStreams, это упрощает процесс.

Довольно хороший пример использования пользовательского распределителя можно найти здесь .

1 голос
/ 13 октября 2009

Что ты имеешь в виду? Когда вы начинаете проигрывать файл, он открывает окно, которое содержит фактическое видео?

Если это так, вы, вероятно, захотите исследовать фильтр Video Mixing Render . Вы можете создать свой собственный собственный распределитель , который позволит вам перехватить текущий вызов , который затем позволит вам рисовать видео в любом месте, и, тем не менее, вы хотите.

Или, и лично я думаю, что это проще, вы хотите исследовать пример фильтра дампа, а затем использовать его для создания своего собственного средства визуализации. Таким образом, когда вы получаете рамку, вы можете делать с ней все, что угодно, не суетясь с внутренностями. Это очень простые фильтры записи, если вы не хотите, чтобы они были доступны за пределами вашего приложения.

Редактировать: QueryInterfaced интерфейс IVMRFilterConfig9 и SetRenderingMode равным VMR9Mode_Windowless?

...