Freigeben über


Abfragen nach Suchfunktionen

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

Microsoft® DirectShow® unterstützt die Suche über die IMediaSeeking-Schnittstelle . Der Filter Graph-Manager macht diese Schnittstelle verfügbar, aber die Suchfunktionalität wird immer durch Filter im Diagramm implementiert.

Einige Daten können nicht gesucht werden. Sie können beispielsweise keinen Livevideostream von einer Kamera abrufen. Wenn ein Stream jedoch durchsucht werden kann, gibt es verschiedene Arten von Suchvorgängen, die er unterstützen kann. Dazu gehören:

  • Suchen an einer beliebigen Position im Stream.
  • Abrufen der Dauer des Datenstroms.
  • Abrufen der aktuellen Position im Stream.
  • Umgekehrte Wiedergabe.

Die IMediaSeeking-Schnittstelle definiert eine Reihe von Flags AM_SEEKING_SEEKING_CAPABILITIES, die die möglichen Suchfunktionen beschreiben. Rufen Sie zum Abrufen der Funktionen des Streams die IMediaSeeking::GetCapabilities-Methode auf . Die -Methode gibt eine bitweise Kombination von Flags zurück. Die Anwendung kann sie mit dem & (bitweisen AND)-Operator testen. Mit dem folgenden Code wird beispielsweise überprüft, ob das Diagramm eine beliebige Position suchen kann:

DWORD dwCap = 0;
HRESULT hr = pSeek->GetCapabilities(&dwCap);
if (AM_SEEKING_CanSeekAbsolute & dwCap)
{
    // Graph can seek to absolute positions.
}