Como controlar estados de apresentação
A Sessão de Mídia fornece controle de transporte, como alterar estados de apresentação (Reproduzir, Pausar e Parar em um cenário de reprodução no estilo playlist). Este tópico descreve os métodos de Sessão de Mídia que um aplicativo deve chamar para alterar o estado de reprodução.
A tabela a seguir mostra as transições de estado de apresentação válidas.
Transição de estado | Descrição |
---|---|
Reproduzir –> Pausar | O relógio de apresentação congela. |
Reproduzir –> Parar | O relógio de apresentação é redefinido. |
Pausar –> Reproduzir | O relógio de apresentação é retomado a partir do momento em que congelou durante a transição Reproduzir para Pausar. |
Pausar –> Parar | O relógio de apresentação é redefinido. |
Parar –> Reproduzir | O relógio de apresentação começa desde o início da apresentação. |
Parar –> Pausar | Não permitido. |
Para alterar os estados da apresentação
Chame o método IMFMediaSession::P ause para pausar a reprodução.
hr = pMediaSession->Pause();
Antes de chamar esse método, o aplicativo deve chamar o método IMFMediaSession::GetSessionCapabilities para descobrir se a fonte de mídia dá suporte ao estado Pause. Se isso acontecer, esse método retornará MFSESSIONCAP_PAUSE no parâmetro pdwCaps .
Pausar temporariamente interrompe a Sessão de Mídia, o relógio de apresentação e o coletor de fluxo para a apresentação atual. Depois que a chamada for concluída com êxito, o aplicativo receberá um evento MESessionPaused .
Chame o método IMFMediaSession::Stop para interromper a reprodução.
hr = pMediaSession->Stop();
Esse método interrompe a Sessão de Mídia parando a fonte de mídia, os relógios correspondentes e os coletores de fluxo. Se a Sessão de Mídia estiver controlando a Origem do Sequencer, as fontes nativas subjacentes serão interrompidas pela origem do sequenciador. Depois que a Sessão de Mídia é interrompida, o aplicativo recebe um evento MESessionStopped .
Chame o método IMFMediaSession::Start para iniciar a reprodução ou buscar uma nova posição.
hr = pMediaSession->Start(NULL, &var);
Esse método inicia a Sessão de Mídia dos estados Pausar e Parar. A Sessão de Mídia é responsável por configurar o fluxo de dados no pipeline. Esse método instrui a Sessão de Mídia a iniciar o relógio de apresentação. Após essa chamada, a Sessão de Mídia envia um evento MESessionStarted para o aplicativo.
Tópicos relacionados