Freigeben über


VMR-Fenstermodus (Kompatibilitätsmodus)

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]

Die VMR ist so konzipiert, dass sie mit allen vorhandenen DirectShow-Anwendungen kompatibel ist. Wenn sie mit einer vorhandenen Anwendung verwendet wird, wird der VMR im Fenstermodus mit einem einzelnen Videostream ausgeführt, der auch als Kompatibilitätsmodus bezeichnet wird. Dieser Modus wird bereitgestellt, da VMR-7 der Standardrenderer unter Windows XP ist und daher automatisch in Aufrufen von Intelligent Connect-Methoden wie IGraphBuilder::RenderFile verwendet wird. Wenn Ihre Anwendung Intelligent Connect verwendet und nur grundlegende Renderingfunktionen benötigt, benötigen Sie keinen speziellen Code, um mit VMR-7 unter Windows XP ordnungsgemäß zu rendern.

VmR-9 wird standardmäßig auch im Fenster-/Kompatibilitätsmodus ausgeführt. VmR-9 ist jedoch nie der Standard-Videorenderer. Um VMR-9 in einer Anwendung verwenden zu können, müssen Sie sie explizit dem Filterdiagramm hinzufügen. Aus diesem Grund und da der fensterlose Modus eine bessere Funktionalität bietet als der Fenstermodus, hat die Verwendung von VMR-9 im Fenster-/Kompatibilitätsmodus keinen besonderen Vorteil.

Verwenden von VMR-7 im Fenster-/Kompatibilitätsmodus

Zum Einrichten oder Steuern der VMR-7 im Fenster-/Kompatibilitätsmodus ist keine spezielle Programmierung erforderlich. Erstellen Sie einfach das Filterdiagramm mithilfe der Standardmäßigen Aufrufe zum Erstellen von Diagrammen, und VMR-7 wird standardmäßig in diesem Modus verwendet.

Im Fenster-/Kompatibilitätsmodus erstellt VMR-7 ein eigenes Fenster zum Anzeigen des Videos. Dazu wird die Window Manager-Komponente geladen, die die Schnittstellen IVideoWindow und IBasicVideo verfügbar macht. Ihre Anwendung kann den Filter Graph-Manager für diese Schnittstellen genau wie beim alten Videorenderer-Filter abfragen. Weitere Informationen finden Sie unter Verwenden des Fenstermodus.

Die folgende Abbildung zeigt vmR-7 im Fenster-/Kompatibilitätsmodus.

vmr im Kompatibilitätsmodus

Um die maximale Kompatibilität zu gewährleisten, hat das Videofenster den gleichen Klassennamen wie der vom alten Videorenderer-Filter erstellte, und der größte Teil des Fenster-Manager-Codes aus dem alten Videorenderer wird weiterhin von der VMR verwendet. Im Fenster-/Kompatibilitätsmodus verbraucht die VMR nicht mehr Systemressourcen als der alte Videorenderer. Da der VMR-7 nur einen Eingabestream im Fenster-/Kompatibilitätsmodus aufweist, lädt er seine Mixer- oder Compositorkomponenten nicht.

Standardmäßig streckt die VMR das Image, um das Videofenster zu füllen. Um das Seitenverhältnis der Quelle beizubehalten, rufen Sie die METHODE IVMRAspectRatioControl::SetAspectRatioMode mit dem Flag VMR_ARMODE_LETTER_BOX auf.

Hinweis

MFC-Anwendungen, die das Videofenster in einem untergeordneten Fenster platzieren, müssen einen leeren WM_ERASEBKGND Nachrichtenhandler definieren, andernfalls wird der Videoanzeigebereich nicht ordnungsgemäß neu gezeichnet.

 

Verwenden von VMR-7 im Fenster-/Kompatibilitätsmodus mit mehreren Streams

Im Fenster-/Kompatibilitätsmodus erstellt VMR-7 standardmäßig einen einzelnen Eingabenadel und deaktiviert den Mischmodus. Um den Mischmodus zu aktivieren, müssen Sie die VMR konfigurieren, bevor Sie ihn verbinden. Weitere Informationen finden Sie unter VMR mit mehreren Streams (Mischmodus). Im Mischmodus lädt die VMR die Misch- und Compositorkomponenten, die mehr Systemressourcen erfordern.

Verwenden von VMR-9 im Fenstermodus

Da VMR-9 nicht der Standardrenderer ist, verfügt er nicht über einen Kompatibilitätsmodus als solcher. Stattdessen verwendet VMR-9 standardmäßig den Fenstermodus mit vier Eingabestiften. Sie können diesen Modus verwenden, um bis zu vier Videostreams zu mischen. Wenn Sie eine größere Anzahl von Streams mischen müssen, müssen Sie sie wie unter VMR mit mehreren Streams (Mischmodus) beschrieben konfigurieren. Andernfalls verhält sich VMR-9 im Fenstermodus genau wie die VMR-7 im Fenster-/Kompatibilitätsmodus.