Freigeben über


ISampleGrabber::SetOneShot-Methode

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

Hinweis

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

 

Die SetOneShot-Methode gibt an, ob der Sample Grabber-Filter angehalten wird, nachdem der Filter ein Beispiel empfangen hat.

Syntax

HRESULT SetOneShot(
   BOOL OneShot
);

Parameter

Oneshot

Ein boolescher Wert, der angibt, ob der Sample Grabber-Filter nach dem Empfang eines Beispiels angehalten wird.

Wert Bedeutung
STIMMT
Der Beispielgrabber wird nach dem ersten Beispiel angehalten.
FALSE
Nach dem ersten Beispiel wird der Beispielgrabber mit der Verarbeitung von Beispielen fortgesetzt. Dies ist das Standardverhalten.

 

Rückgabewert

Wenn diese Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.

Bemerkungen

Verwenden Sie diese Methode, um wie folgt ein einzelnes Beispiel aus dem Stream abzurufen:

  1. Rufen Sie SetOneShot mit dem Wert TRUE auf.
  2. Verwenden Sie optional die IMediaSeeking-Schnittstelle , um eine Position im Stream zu suchen.
  3. Rufen Sie IMediaControl::Run auf, um das Filterdiagramm auszuführen.
  4. Rufen Sie IMediaEvent::WaitForCompletion auf, um auf das Anhalten des Graphen zu warten. Rufen Sie alternativ IMediaEvent::GetEvent auf, um Graphereignisse abzurufen, bis Sie das EC_COMPLETE-Ereignis erhalten.

Nachdem der Beispielgrabber angehalten wurde, befindet sich das Filterdiagramm weiterhin im Ausführungszustand. Sie können das Diagramm suchen oder anhalten, um ein weiteres Beispiel zu erhalten.

Hinweis

In einer früheren Version der Dokumentation wurde angegeben, dass das Filterdiagramm beendet wird, nachdem das Beispiel empfangen wurde. Das ist nicht korrekt. Der Stream endet, aber der Graph verbleibt im Zustand "Wird ausgeführt".

 

Der Beispielgrabber implementiert den One-Shot-Modus, indem IPin::EndOfStream im Downstreamfilter aufgerufen und S_FALSE von der IMemInputPin::Receive-Methode zurückgegeben wird.

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

Siehe auch

Verwenden des Beispielgrabbers

ISampleGrabber-Schnittstelle