Ciclo de vida y estados del objeto MediaPlayer

El estado del reproductor de contenidos determina qué acciones son legales.

Para trabajar con estados del reproductor de medios:

  • Puede recuperar el estado actual del objeto MediaPlayer con MediaPlayer.getStatus().

  • La lista de estados se define en la enumeración MediaPlayerStatus.

Diagrama de estado-transición para el ciclo de vida de una instancia MediaPlayer:

La siguiente tabla proporciona detalles sobre el ciclo de vida y los estados del reproductor de contenidos:

Estado Ocurre cuando
IDLE

Estado inicial del reproductor de contenidos. El reproductor se crea y está esperando a que especifique un elemento del reproductor de contenidos.

INICIALIZACIÓN

La aplicación llama a MediaPlayer.replaceCurrentItem() .

Se está cargando el elemento del reproductor de contenidos.

INICIALIZADO

TVSDK estableció correctamente el elemento de reproductor de contenidos.

PREPARACIÓN

La aplicación llama a MediaPlayer.prepareToPlay() . El reproductor de medios está cargando el elemento del reproductor de medios y los recursos asociados.

PREPARADO

TVSDK ha preparado el flujo de medios y ha intentado realizar la resolución de anuncios y la inserción de anuncios (si está habilitada). El contenido está preparado y se han insertado anuncios en la cronología, o el procedimiento de publicidad ha fallado.

Puede comenzar el almacenamiento en búfer o la reproducción.

REPRODUCIR/PAUSAR

A medida que la aplicación reproduce y pone en pausa el contenido, el reproductor de contenidos se mueve entre estos estados.

SUSPENDIDO

Si la aplicación sale de la reproducción, apaga el dispositivo o cambia de aplicación mientras el reproductor se está reproduciendo o pausando, el reproductor de contenidos se suspende y se liberan los recursos.

Llamar a MediaPlayer.restore() devuelve el reproductor al estado en el que se encontraba antes de SUSPENDER. La excepción es que si el reproductor está BUSCANDO cuando se llama a suspendido, el reproductor se PONE EN PAUSA y, a continuación, se SUSPENDE.

Importante:

Recuerde la siguiente información:

  • El MediaPlayer llama automáticamente a suspender solo cuando se destruye el objeto de superficie que utiliza el MediaPlayerView .
  • El MediaPlayer llama automáticamente a restore() solo cuando se crea un nuevo objeto de superficie que utiliza el MediaPlayerView .

Si siempre desea pausar la reproducción cuando se restaure MediaPlayer, pida a la aplicación que llame a MediaPlayer.pause() en el método onPause() de la actividad de Android.

COMPLETAR

El reproductor ha llegado al final de la emisión y la reproducción se ha detenido.

PUBLICADO

La aplicación ha lanzado el reproductor de contenido, que también libera todos los recursos asociados. Ya no puede utilizar esta instancia.

ERROR

Error durante el proceso. Un error también podría afectar a lo que la aplicación puede hacer a continuación. Para obtener más información, consulte Configuración de la gestión de errores .

SUGERENCIA

Puede utilizar el estado para proporcionar comentarios sobre el proceso, por ejemplo, un control de número mientras espera el siguiente cambio de estado, o seguir los siguientes pasos en la reproducción del contenido, como esperar al estado adecuado antes de llamar al siguiente método.

Por ejemplo:

mediaPlayer.addEventListener(MediaPlayerEvent STATUS_CHANGED, new StatusChangeEventListener() {
    @Override
    public void onStatusChanged(MediaPlayerStatusChangeEvent event) {
        switch(event.getStatus()) {
            case INITIALIZED:
                mediaPlayer.prepareToPlay();
                break;
            case PREPARING:
                showBufferingSpinner();
                break;
            case PREPARED:
                hideBufferingSpinner();
                mediaPlayer.play();
                break;
            ...
        }
        ...
    }
});

En esta página