Freigeben über


IMediaControl::StopWhenReady-Methode (control.h)

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

Die StopWhenReady -Methode hält das Filterdiagramm an, sodass Filter Daten in die Warteschlange stellen können, und beendet dann das Filterdiagramm.

Syntax

HRESULT StopWhenReady();

Rückgabewert

Gibt einen HRESULT-Wert zurück. Die folgenden Werte sind möglich.

Rückgabecode BESCHREIBUNG
S_OK
Erfolg.
S_FALSE
Der Graph wurde noch in den Zustand angehalten übergehen, als die Methode zurückgegeben wurde.

Hinweise

Diese Methode ist nützlich, wenn Sie das Filterdiagramm suchen möchten, während der Graph beendet wird. Solange das Filterdiagramm angehalten wird, wird das Videofenster bei Änderungen an der aktuellen Position nicht mit einem neuen Frame neu gezeichnet. Daher wird das Videofenster beim Aufrufen von IMediaSeeking::SetPositions nicht aktualisiert. Um das Fenster nach dem Suchvorgang zu aktualisieren, rufen Sie auf StopWhenReady. Diese Methode übergibt den Graphen in einen angehaltenen Zustand, wartet auf den Abschluss des Pausenvorgangs und übergibt dann den Graphen wieder in beendet. Beim Pausenvorgang werden Daten im Diagramm in die Warteschlange eingereiht, sodass der Videorenderer den neuen Frame empfängt und anzeigt.

Diese Methode ist asynchron. Es wartet auf einem separaten Thread, bis die Pause abgeschlossen ist. Der aufrufende Thread wird nicht blockiert, sodass die Anwendung auf Benutzereingaben reagieren kann. Wenn die Methode zurückgibt, wird der logische Zustand des Graphen beendet, noch bevor der Pausenvorgang abgeschlossen ist. Wenn Sie an diesem Punkt die IMediaControl::GetState-Methode aufrufen, wird State_Stopped zurückgegeben.

Wenn die Anwendung vor Abschluss des Pausenvorgangs einen anderen Zustandsänderungsbefehl (z. B. Anhalten, Ausführen oder Suchen) ausgibt, bricht der neue Befehl den Befehl Pending stop ab. Der Pausenvorgang wird abgeschlossen, aber der Graph wird nicht beendet.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile control.h (include Dshow.h)
Bibliothek Strmiids.lib

Weitere Informationen

Fehler- und Erfolgscodes

IMediaControl-Schnittstelle