Ciclo de vida del objeto MediaPlayer

Desde el momento en que crea la instancia de MediaPlayer hasta el momento en que la cierra (vuelve a utilizar o elimina), esta instancia completa una serie de transiciones entre estados.

Algunas operaciones solo se permiten cuando el reproductor está en un estado concreto. Por ejemplo, no se permite llamar a play en IDLE. Puede llamar a este estado solo después de que el reproductor alcance el estado PREPARED .

Para trabajar con estados:

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

    PlayerState getStatus() throws IllegalStateException;
    
  • La lista de estados se define en MediaPlayer.PlayerState.

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

En la tabla siguiente se proporcionan detalles adicionales:

MediaPlayer.PlayerState Ocurre cuando
IDLE

La aplicación solicitó un nuevo reproductor de contenidos llamando a DefaultMediaPlayer.create . El reproductor recién creado está esperando a que especifique un elemento del reproductor de contenidos. Este es el estado inicial del reproductor de medios.

INICIALIZACIÓN

La aplicación denominada MediaPlayer.replaceCurrentItem y se está cargando el reproductor de medios.

INICIALIZADO

TVSDK estableció correctamente el elemento del reproductor de medios.

PREPARACIÓN

La aplicación se llama MediaPlayer.prepareToPlay . El reproductor de contenidos está cargando el elemento del reproductor de contenidos y los recursos asociados.

Sugerencia: Puede que se produzca algún almacenamiento en búfer del contenido principal.

TVSDK está preparando el flujo de medios e intentando realizar la resolución de anuncios y la inserción de anuncios, (si está habilitada).

Sugerencia: Para establecer el tiempo de inicio en un valor distinto de cero, llame a prepareToPlay(startTime) con el tiempo en milisegundos.

PREPARADO

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.

REPRODUCCIÓN

La aplicación ha llamado play , por lo que TVSDK está intentando reproducir el vídeo. Puede que se produzca algún almacenamiento en búfer antes de que se reproduzca realmente el vídeo.

EN PAUSA

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

SUSPENDIDO

La aplicación se alejó de la reproducción, apagó el dispositivo o cambió de aplicación mientras el reproductor se estaba reproduciendo o pausando. Se ha suspendido el reproductor de contenidos y se han liberado recursos. Para continuar, restaure el reproductor multimedia.

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 se puede usar esta instancia

ERROR

Error durante el proceso. Un error también podría afectar a lo que puede hacer la aplicación a continuación.

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 para dar el siguiente paso en la reproducción del contenido, como esperar al estado adecuado antes de llamar al siguiente método.

Por ejemplo:

@Override 
public void onStateChanged(MediaPlayer.PlayerState state,  
                           MediaPlayerNotification notification) { 
   switch (state) { 
      // It is recommended that you call prepareToPlay() after receiving  
      // the INITIALIZED state. 
      case INITIALIZED: 
         _mediaPlayer.prepareToPlay(); 
         break; 
      case PREPARING: 
         showBufferingSpinner(); 
         break; 
      case PREPARED: 
         hideBufferingSpinner(); 
      ..... 
    } 
}

En esta página