Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[Функция, связанная с этой страницей, DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngineи аудио и видеозахват в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать новый код MediaPlayer, IMFMediaEngine и аудио-видеозахват в Media Foundation вместо DirectShowпо возможности. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]
VmR предназначен для обеспечения совместимости со всеми существующими приложениями DirectShow. При использовании с существующим приложением vmR работает в окне с одним видеопотоком, который также называется режимом совместимости. Этот режим предоставляется, так как VMR-7 является отрисовщиком по умолчанию в Windows XP и поэтому автоматически используется в вызовах методов интеллектуального подключения , таких как IGraphBuilder::RenderFile. Если приложение использует Intelligent Connect и требует только базовых возможностей отрисовки, вам не нужен специальный код для правильной отрисовки с помощью VMR-7 в Windows XP.
VmR-9 также работает в режиме совместимости с окном или совместимостью по умолчанию. Однако vmR-9 никогда не является отрисовщиком видео по умолчанию. Чтобы использовать VMR-9 в приложении, необходимо явно добавить его в граф фильтров. По этой причине, так как режим без окна обеспечивает более высокую функциональность, чем режим окна, в режиме совместимости vmR-9 не имеет особого преимущества.
использование VMR-7 в режиме совместимости в окне или режиме совместимости
Для настройки или управления vmR-7 в режиме совместимости с окном или совместимости не требуется специальное программирование. Просто создайте граф фильтров с помощью стандартных вызовов графа, и VMR-7 по умолчанию будет использоваться в этом режиме.
В режиме совместимости с окном vmR-7 создает собственное окно для отображения видео. Для этого он загружает компонент Диспетчера окон, который предоставляет интерфейсы IVideoWindow и интерфейсов IBasicVideo. Приложение может запрашивать диспетчер графов фильтров для этих интерфейсов точно так же, как и старый фильтр отрисовщика видео. Дополнительные сведения см. в с помощьюрежима окна.
На следующем рисунке показан режим совместимости VMR-7 в окне или режиме совместимости.
Чтобы гарантировать максимальную совместимость, окно видео имеет то же имя класса, что и старый фильтр отрисовщика видео, и большая часть кода Диспетчера окон из старого отрисовщика видео по-прежнему используется vmR. В режиме совместимости с окном виртуальная машина не потребляет больше системных ресурсов, чем старый отрисовщик видео. Так как VMR-7 имеет только один входной поток в режиме совместимости с окном, он не загружает компоненты миксера или компостора.
По умолчанию VMR растягивает изображение, чтобы заполнить окно видео. Чтобы сохранить пропорции источника, вызовите метод IVMRAspectRatioControl::SetAspectRatioMode с флагом VMR_ARMODE_LETTER_BOX.
Заметка
Приложения MFC, размещающие окно видео в дочернем окне, должны определять пустой обработчик сообщений WM_ERASEBKGND или область отображения видео не будет правильно перенаправляться.
использование VMR-7 в режиме совместимости с несколькими потоками
В режиме совместимости с окном vmR-7 по умолчанию создает один входной пин-код и отключает режим смешивания. Чтобы включить режим смешивания, перед подключением необходимо настроить VMR. Дополнительные сведения см. в VMR с несколькими потоками (режимом смешивания). В режиме смешивания vmR загружает компоненты смешивания и компостора, для которых требуется больше системных ресурсов.
использование VMR-9 в режиме окна
Так как vmR-9 не является отрисовщиком по умолчанию, он не имеет режима совместимости как такового. Вместо этого vmR-9 по умолчанию использует режим окна с четырьмя входными закреплениями. Этот режим можно использовать для смешивания до четырех видеопотоков. Если необходимо смешать большее количество потоков, необходимо настроить его, как описано в VMR с помощью нескольких потоков (режим смешивания). В противном случае vmR-9 в режиме окна работает точно так же, как VMR-7 в режиме совместимости в окне или совместимости.