La clase MediaPlayer

La reproducción multimedia en Android se lleva a cabo principalmente por medio de la claseMediaPlayer. Veremos a continuación las características más importantes de esta clase y cómo podemos sacarle provecho.

Un objeto MediaPlayer va a poder pasar por gran variedad de estados: inicializados sus recursos (initialized), preparando la reproducción (preparing), preparado para reproducir (prepared), reproduciendo (started), en pausa (paused), parado (stopped), reproducción completada (playback completed), finalizado (end) y con error (error). Resulta importante conocer en qué estado se encuentra dado que muchos de los métodos solo pueden ser llamados desde ciertos estados. Por ejemplo, no podemos ponerlo en reproducción (método start()) sino está en estado preparado. O no podremos ponerlo en pausa (pause()), si está parado. Si llamamos a un método no admitido para un determinado estado se producirá un error de ejecución.

La siguiente tabla permite conocer los métodos que podemos invocar desde cada uno de los estados y cuál es el nuevo estado al que iremos tras invocarlo. Existen dos tipos de métodos, los que no están subrayados representan métodos llamados de forma síncrona desde nuestro código, mientras que los que están subrayados representan métodos llamados de forma asíncrona por el sistema.

   

Estado salida

Estado entrada

Idle

Initialized

Preparing

Prepared

Started

Paused

Stopped

Playback Completed

Initialized

setDataSource

 

 

 

 

 

 

 

Preparing

 

prepareAsync

 

 

 

 

prepareAsync

 

Prepared

 

prepare

onPrepared

seekTo

 

 

prepare

 

Started

 

 

 

start

seekTo
start

start

 

start

Paused

 

 

 

 

pause

seekTo
pause

 

 

Stopped

 

 

 

stop

stop

stop

stop

stop

Playback Completed

 

 

 

 

onCompletion

 

 

seekTo

End

Release

release

release

release

release

release

release

release

Error

onError

onError

onError

onError

onError

onError

onError

onError

Tabla 6: Transiciones entre estados de la clase MediaPlayer