Come controllare gli stati di presentazione
La sessione multimediale fornisce un controllo di trasporto, ad esempio la modifica degli stati di presentazione (riproduzione, pausa e arresto in uno scenario di riproduzione in stile playlist). In questo argomento vengono descritti i metodi di sessione multimediale che un'applicazione deve chiamare per modificare lo stato di riproduzione.
Nella tabella seguente vengono illustrate le transizioni di stato di presentazione valide.
Transizione dello stato | Descrizione |
---|---|
Riproduzione -> Pausa | L'orologio della presentazione si blocca. |
Play -> Stop | L'orologio della presentazione viene reimpostato. |
Pausa -> Riproduzione | L'orologio della presentazione riprende dal momento in cui si blocca durante la transizione Play to Pause. |
Pausa -> Arresta | L'orologio della presentazione viene reimpostato. |
Stop -> Play | L'orologio della presentazione inizia dall'inizio della presentazione. |
Arresta -> Sospendi | Non consentiti. |
Chiamare il metodo IMFMediaSession::P ause per sospendere la riproduzione.
hr = pMediaSession->Pause();
Prima di chiamare questo metodo, l'applicazione deve chiamare il metodo IMFMediaSession::GetSessionCapabilities per determinare se l'origine multimediale supporta lo stato Pause. In tal caso, questo metodo restituisce MFSESSIONCAP_PAUSE nel parametro pdwCaps .
La sospensione arresta temporaneamente la sessione multimediale, l'orologio della presentazione e il sink del flusso per la presentazione corrente. Al termine della chiamata, l'applicazione riceve un evento MESessionPaused .
Chiamare il metodo IMFMediaSession::Stop per arrestare la riproduzione.
hr = pMediaSession->Stop();
Questo metodo arresta la sessione multimediale arrestando l'origine multimediale, gli orologi corrispondenti e i sink di flusso. Se la sessione multimediale controlla l'origine sequencer, le origini native sottostanti vengono arrestate dall'origine sequencer. Dopo l'arresto della sessione multimediale, l'applicazione riceve un evento MESessionStopped .
Chiamare il metodo IMFMediaSession::Start per avviare la riproduzione o cercare una nuova posizione.
hr = pMediaSession->Start(NULL, &var);
Questo metodo avvia la sessione multimediale dagli stati Pause e Stop. La sessione multimediale è responsabile della configurazione del flusso di dati nella pipeline. Questo metodo indica alla sessione multimediale di avviare l'orologio della presentazione. Dopo questa chiamata, Media Session invia un evento MESessionStarted all'applicazione.