Asynchrones Filterbeispiel
[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.]
BESCHREIBUNG
Das Beispiel Asynchroner Filter ist ein Dateilesefilter, der progressive Downloads unterstützt. Dieser Beispielfilter implementiert die Schnittstellen IAsyncReader und IFileSourceFilter . Es unterstützt MPEG-Dateien, aber keine AVI-Dateien.
Verbrauch
Dieses Beispiel enthält eine kleine Befehlszeilenanwendung, Memfile.exe, die den Filter veranschaulicht. Die Befehlszeilenargumente geben eine Mediendatei und eine Bitrate in Kilobyte pro Sekunde an. Die Anwendung liest die Datei mit der angegebenen Rate in den Arbeitsspeicher und gibt die Datei wieder. Dazu wird eine instance des Filters erstellt, der Filter dem Filterdiagramm hinzugefügt und der Ausgabepin des Filters gerendert.
Geben Sie an der Befehlszeile den folgenden Befehl ein:
Memfile Filename BitRate
Der asynchrone Beispielfilter unterstützt keine AVI-Dateien, da er keine Verbindung mit dem AVI-Splitterfilter herstellen kann. Der Ausgabenadel des Asynchronfilters schlägt MEDIATYPE_Stream und MEDIASUBTYPE_NULL für den Medientyp vor. Der Eingabenadel des AVI-Splitterfilters akzeptiert keine MEDIASUBTYPE_NULL und schlägt keine eigenen Typen vor. Daher tritt bei der Pinverbindung ein Fehler auf. Der asynchrone Filter kann erweitert werden, um ggf. MEDIASUBTYPE_Avi anzubieten. Es könnte beispielsweise das Dateiformat untersuchen oder die Dateierweiterung verwenden.
Herunterladen des Beispiels
Um die DirectShow SDK-Beispiele herunterzuladen, installieren Sie die neueste Version des Windows SDK.
Dieses Beispiel wird unter dem folgenden Pfad installiert: [SDK Root]\Samples\Multimedia\DirectShow\Filters\Async.
Zugehörige Themen