Freigeben über


IMediaControl::Run-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 Run -Methode führt alle Filter im Filterdiagramm aus. Während der Ausführung des Graphen werden Daten durch das Diagramm verschoben und gerendert.

Syntax

HRESULT Run();

Rückgabewert

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

Rückgabecode Beschreibung
S_FALSE
Die Ausführung des Graphen wird vorbereitet, aber einige Filter haben den Übergang zu einem ausgeführten Zustand noch nicht abgeschlossen.
S_OK
Alle Filter im Diagramm haben den Übergang zu einem ausgeführten Zustand abgeschlossen.

Bemerkungen

Wenn das Filterdiagramm beendet wird, hält diese Methode den Graphen an, bevor er ausgeführt wird. Wenn das Diagramm bereits ausgeführt wird, gibt die Methode S_OK zurück, hat jedoch keine Auswirkung.

Das Diagramm wird ausgeführt, bis die Anwendung die IMediaControl::P ause- oder IMediaControl::Stop-Methode aufruft. Wenn die Wiedergabe das Ende des Datenstroms erreicht, wird das Diagramm weiterhin ausgeführt, aber die Filter streamen keine weiteren Daten. An diesem Punkt kann die Anwendung den Graphen anhalten oder beenden. Informationen zum Ereignis "Streamende" finden Sie unter IMediaControl::P ause und EC_COMPLETE.

Diese Methode sucht nicht am Anfang des Datenstroms. Wenn Sie das Diagramm also ausführen, ihn anhalten und dann erneut ausführen, wird die Wiedergabe von der angehaltenen Position fortgesetzt. Wenn Sie das Diagramm ausführen, nachdem es das Ende des Datenstroms erreicht hat, wird nichts gerendert. Um das Diagramm zu suchen, verwenden Sie die IMediaSeeking-Schnittstelle .

Wenn die -Methode S_FALSE zurückgibt, bedeutet dies, dass die zurückgegebene Methode zurückgegeben wurde, bevor alle Filter in den Status "Ausgeführt" umgestellt wurden. Die Filter schließen den Übergang nach der Rückgabe der Methode ab. Optional können Sie warten, bis der Übergang abgeschlossen ist, indem Sie die IMediaControl::GetState-Methode mit einem Timeoutwert aufrufen. Dies ist jedoch nicht erforderlich.

Wenn die Run-Methode einen Fehlercode zurückgibt, bedeutet dies, dass mindestens ein Filter nicht ausgeführt werden konnte. Einige Filter befinden sich jedoch möglicherweise im Status "Wird ausgeführt". In einem Multistreamdiagramm werden möglicherweise ganze Datenströme erfolgreich wiedergegeben. In der Regel würde die Anwendung das Diagramm abreißen und in diesem Fall einen Fehler melden.

Anforderungen

   
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

Siehe auch

Fehler- und Erfolgscodes

IMediaControl-Schnittstelle