IMediaDet-Schnittstelle

[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.]

Hinweis

[Veraltet. Diese API kann aus zukünftigen Versionen von Windows entfernt werden.]

 

Die IMediaDet Schnittstelle ruft Informationen zu einer Mediendatei ab, z. B. die Anzahl der Datenströme sowie den Medientyp, die Dauer und die Bildfrequenz jedes Datenstroms. Es enthält auch Methoden zum Abrufen einzelner Frames aus einem Videostream. Das Media Detector -Objekt (MediaDet) macht diese Schnittstelle verfügbar.

Führen Sie die folgenden Schritte aus, um Informationen zu einer Datei über diese Schnittstelle abzurufen:

  1. Erstellen Sie eine instance des MediaDet-Objekts, indem Sie CoCreateInstance aufrufen. Die Klassen-ID ist CLSID_MediaDet.
  2. Rufen Sie IMediaDet::p ut_Filename auf, um den Namen der Quelldatei anzugeben.
  3. Rufen Sie IMediaDet::get_OutputStreams auf, um die Anzahl der Ausgabestreams in der Quelle abzurufen.
  4. Rufen Sie IMediaDet::p ut_CurrentStream auf, um einen bestimmten Stream anzugeben.
  5. Rufen Sie eine der folgenden Methoden auf:

Um einen Videoframe abzurufen, rufen Sie IMediaDet::GetBitmapBits oder IMediaDet::WriteBitmapBits auf. Der zurückgegebene Frame ist immer im 24-Bit-RGB-Format.

Hinweis

Verwenden Sie nicht dasselbe MediaDet-Objekt mit mehreren Dateien. Verwenden Sie separate MediaDet-Instanzen, um Informationen oder Videoframes aus mehreren Dateien abzurufen.

 

Die IMediaDet-Schnittstelle unterstützt keine VIDEOINFOHEADER2-Formate , sodass Sie diese Schnittstelle nicht verwenden können, um interlaced Fields oder Informationen zum Interlacing abzurufen. Wenn der Upstream-Decoder nur VIDEOINFOHEADER2 unterstützt, können Sie außerdem nicht verwendenIMediaDet. Dies kann z. B. bei einem MPEG-2-Decoder der Fall sein. Außerdem ignoriert die IMediaDet Schnittstelle alle Datenströme in der Datei, die keine Video- oder Audiodaten sind. Wenn die Datei beispielsweise einen Audiodatenstrom, einen Datenstrom und einen Videostream enthält, meldet die get_OutputStreams-Methode nur zwei Streams (Audio und Video).

Member

Die IMediaDet-Schnittstelle erbt von der IUnknown-Schnittstelle . IMediaDet verfügt auch über folgende Arten von Membern:

Methoden

Die IMediaDet-Schnittstelle verfügt über diese Methoden.

Methode BESCHREIBUNG
EnterBitmapGrabMode Wechselt den Mediendetektor in den Bitmap-Grabmodus und sucht das Filterdiagramm auf eine angegebene Zeit.
get_CurrentStream Ruft die Streamnummer ab, die derzeit vom Mediendetektor verwendet wird.
get_Filename Ruft den Namen der Quelldatei ab, die derzeit vom Mediendetektor verwendet wird.
get_Filter Ruft einen Zeiger auf den Quellfilter ab, der derzeit vom Mediendetektor verwendet wird.
get_FrameRate Ruft die Bildrate des aktuellen Datenstroms ab.
get_OutputStreams Ruft die Anzahl der Audio- und Videostreams ab, die in der Medienquelle enthalten sind.
get_StreamLength Ruft die Dauer des aktuellen Datenstroms ab.
get_StreamMediaType Ruft den Medientyp des aktuellen Datenstroms ab.
get_StreamType Ruft den globalen eindeutigen Bezeichner (GUID) für den Medientyp des aktuellen Datenstroms ab.
get_StreamTypeB Ruft eine Zeichenfolge ab, die die GUID des Medientyps für den aktuellen Stream darstellt.
GetBitmapBits Ruft einen Videoframe zur angegebenen Medienzeit ab.
GetSampleGrabber Ruft einen Zeiger auf die ISampleGrabber-Schnittstelle ab.
put_CurrentStream Gibt die Streamnummer an, die der Mediendetektor verwenden soll.
put_Filename Gibt den Namen der Quelldatei an, die der Mediendetektor verwenden soll.
put_Filter Gibt einen Quellfilter an, der vom Mediendetektor verwendet werden soll.
WriteBitmapBits Ruft einen Videoframe zur angegebenen Medienzeit ab und schreibt ihn in eine Datei.

 

Bemerkungen

Hinweis

Die Headerdatei Qedit.h ist nicht mit Direct3D-Headern ab Version 7 kompatibel.

 

Hinweis

Um Qedit.h zu erhalten, laden Sie das Microsoft Windows SDK Update für Windows Vista und .NET Framework 3.0 herunter. Qedit.h ist im Microsoft Windows SDK für Windows 7 und .NET Framework 3.5 Service Pack 1 nicht verfügbar.

 

Anforderungen

Anforderung Wert
Header
Qedit.h
Bibliothek
Strmiids.lib