Condividi tramite


Metodo IMediaControl::Run (control.h)

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, FMMediaEngine 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, FMMediaEngine e Audio/Video Capture in Media Foundation anziché DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Il Run metodo esegue tutti i filtri nel grafico del filtro. Mentre il grafico è in esecuzione, i dati vengono spostati attraverso il grafico e vengono sottoposti a rendering.

Sintassi

HRESULT Run();

Valore restituito

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

Codice restituito Descrizione
S_FALSE
Il grafico sta preparando l'esecuzione, ma alcuni filtri non hanno completato la transizione a uno stato in esecuzione.
S_OK
Tutti i filtri nel grafico hanno completato la transizione a uno stato in esecuzione.

Commenti

Se il grafico del filtro viene arrestato, questo metodo sospende il grafico prima dell'esecuzione. Se il grafico è già in esecuzione, il metodo restituisce S_OK ma non ha alcun effetto.

Il grafico viene eseguito fino a quando l'applicazione chiama il metodo IMediaControl::P ause o IMediaControl::Stop. Quando la riproduzione raggiunge la fine del flusso, il grafico continua a essere eseguito, ma i filtri non trasmettere più dati. A quel punto, l'applicazione può sospendere o arrestare il grafico. Per informazioni sull'evento end-of-stream, vedere IMediaControl::P ause e EC_COMPLETE.

Questo metodo non cerca l'inizio del flusso. Pertanto, se si esegue il grafico, sospenderlo e quindi eseguirlo di nuovo, la riproduzione riprende dalla posizione sospesa. Se si esegue il grafico dopo aver raggiunto la fine del flusso, non viene eseguito alcun rendering. Per cercare il grafico, usare l'interfaccia IMediaSeeking .

Se il metodo restituisce S_FALSE, significa che il metodo restituito prima che tutti i filtri siano passati a uno stato in esecuzione. I filtri completano la transizione dopo che il metodo restituisce. Facoltativamente, è possibile attendere il completamento della transizione chiamando il metodo IMediaControl::GetState con un valore di timeout. ma ciò non è obbligatorio.

Se il metodo Run restituisce un codice di errore, significa che uno o più filtri non sono riusciti a eseguire. Tuttavia, alcuni filtri potrebbero trovarsi in uno stato in esecuzione. In un grafico multistream l'intero flusso potrebbe essere riprodotto correttamente. In genere l'applicazione elimina il grafico e segnala un errore in questo caso.

Requisiti

   
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 (includere Dshow.h)
Libreria Strmiids.lib

Vedi anche

Codici errore e esito positivo

Interfaccia IMediaControl