Metodo IMediaControl::StopWhenReady (control.h)

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation invece di DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Il StopWhenReady metodo sospende il grafico dei filtri, consentendo ai filtri di accodare i dati e quindi arresta il grafico del filtro.

Sintassi

HRESULT StopWhenReady();

Valore restituito

Restituisce un valore HRESULT . Di seguito sono indicati alcuni valori possibili.

Codice restituito Descrizione
S_OK
Operazione completata.
S_FALSE
Il grafico è ancora in fase di transizione allo stato sospeso quando viene restituito il metodo .

Commenti

Questo metodo è utile se si vuole cercare il grafico del filtro mentre il grafico viene arrestato. Se il grafico del filtro viene arrestato, le modifiche apportate alla posizione corrente non riprendono la finestra video con un nuovo fotogramma. Pertanto, la chiamata a IMediaSeeking::SetPositions non aggiorna la finestra del video. Per aggiornare la finestra dopo l'operazione di ricerca, chiamare StopWhenReady. Questo metodo esegue la transizione del grafico a uno stato sospeso, attende il completamento dell'operazione di sospensione e quindi esegue nuovamente la transizione del grafico a arrestato. L'operazione di sospensione accoda i dati nel grafico, in modo che il renderer video riceva e visualizzi il nuovo fotogramma.

Questo metodo è asincrono. Attende il completamento della sospensione in un thread separato. Il thread chiamante non blocca, che consente all'applicazione di rispondere all'input dell'utente. Al termine dell'operazione di sospensione, lo stato logico del grafico viene arrestato, anche prima del completamento dell'operazione di sospensione. Se si chiama il metodo IMediaControl::GetState a questo punto, restituisce State_Stopped.

Se l'applicazione genera un altro comando di modifica dello stato, ad esempio pausa, esecuzione o ricerca, prima del completamento dell'operazione di sospensione, il nuovo comando annulla il comando di arresto in sospeso. L'operazione di sospensione viene completata, ma il grafico non viene arrestato.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione control.h (include Dshow.h)
Libreria Strmiids.lib

Vedi anche

Codici di errore e di esito positivo

Interfaccia IMediaControl