Compartir a través de


Cómo controlar los estados de presentación

La sesión multimedia proporciona control de transporte, como cambiar los estados de presentación (Reproducir, Pausar y Detener en un escenario de reproducción de estilo de lista de reproducción). En este tema se describen los métodos de sesión multimedia a los que una aplicación debe llamar para cambiar el estado de reproducción.

En la tabla siguiente se muestran las transiciones de estado de presentación válidas.

Transición de estado Descripción
Reproducir:> pausar El reloj de presentación se bloquea.
Reproducir:> detener El reloj de presentación se restablece.
Pausa:> reproducir El reloj de presentación se reanuda desde el momento en que se congeló durante la transición De reproducción a pausa.
Pausa:> detener El reloj de presentación se restablece.
Detener:> reproducir El reloj de presentación comienza desde el principio de la presentación.
Detener:> pausar No permitido.

 

Para cambiar los estados de presentación

  • Llame al método IMFMediaSession::P ause para pausar la reproducción.

    hr = pMediaSession->Pause();
    

    Antes de llamar a este método, la aplicación debe llamar al método IMFMediaSession::GetSessionCapabilities para detectar si el origen multimedia admite el estado Pause. Si es así, este método devuelve MFSESSIONCAP_PAUSE en el parámetro pdwCaps .

    Pausar detiene temporalmente la sesión multimedia, el reloj de la presentación y el receptor de secuencias para la presentación actual. Una vez completada correctamente la llamada, la aplicación recibe un evento MESessionPaused .

  • Llame al método IMFMediaSession::Stop para detener la reproducción.

    hr = pMediaSession->Stop();
    

    Este método detiene la sesión multimedia deteniendo el origen multimedia, los relojes correspondientes y los receptores de secuencias. Si la sesión multimedia controla el origen del secuenciador, el origen del secuenciador detiene los orígenes nativos subyacentes. Una vez detenida la sesión multimedia, la aplicación recibe un evento MESessionStopped .

  • Llame al método IMFMediaSession::Start para iniciar la reproducción o buscar una nueva posición.

    hr = pMediaSession->Start(NULL, &var);
    

    Este método inicia la sesión multimedia desde los estados Pausar y Detener. La sesión multimedia es responsable de configurar el flujo de datos en la canalización. Este método indica a la sesión multimedia que inicie el reloj de presentación. Después de esta llamada, Media Session envía un evento MESessionStarted a la aplicación.

Sesión multimedia