Ciclo de vida y estados del objeto MediaPlayer

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

Para trabajar con estados de reproductor de contenidos:

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

  • La lista de estados se define en la variable MediaPlayerStatus enum.

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

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

Estado Se produce cuando
INACTIVO

Estado inicial del reproductor de contenido. 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 ha establecido correctamente el elemento del reproductor de contenidos.

PREPARANDO

La aplicación llama a MediaPlayer.prepareToPlay() . El reproductor de contenidos está cargando el elemento del reproductor de contenidos 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á activada). El contenido se prepara y los anuncios se insertan en la cronología, o bien se produce un error en el procedimiento publicitario.

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

REPRODUCCIÓN/PAUSA

A medida que la aplicación reproduce y pausa el contenido, el reproductor de contenido 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.

Llamando MediaPlayer.restore() devuelve al reproductor al estado en el que se encontraba antes de SUSPENDERLO. La excepción es que si se llama al reproductor SEEKING cuando está suspendido, el reproductor se PONE EN PAUSA y luego SE SUSPENDE.

Importante:

Recuerde la siguiente información:

  • El MediaPlayer llama automáticamente a suspender sólo cuando el objeto de superficie utilizado por MediaPlayerView se destruye.
  • El MediaPlayer llama automáticamente a restore() sólo cuando se utiliza un objeto de superficie nuevo por la variable MediaPlayerView se ha creado.

Si siempre desea que la reproducción se detenga cuando se restaure MediaPlayer, solicite a la aplicación que invoque MediaPlayer.pause() en la actividad de Android onPause() método.

COMPLETADO

El reproductor ha llegado al final del flujo y la reproducción se ha detenido.

PUBLICADO

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

ERROR

Se ha producido un error durante el proceso. Un error también puede 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 realizar los siguientes pasos en la reproducción de medios, como esperar el 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