Android: mediaplayer se fue con eventos no controlados

Necesito obtener la duración de un archivo de audio para una serie de anuncios de voz que deben reproducirse desde una aplicación. He añadido los archivos de audio como recursos y que juegan muy bien. El código de ejemplo siguiente realmente funciona perfecto para su propósito previsto: devuelve la duración de los archivos de audio.

Aquí está el código:

float getDurationOfAudioResource(LocationEnum loc, Context context){ float duration = 0; try { MediaPlayer mp; mp = MediaPlayer.create(context, getAudioResource(loc)); duration = mp.getDuration(); mp.release(); mp = null; } catch (IllegalStateException e) {e.printStackTrace(); logError(25, "TestDescItem:Fault::Could not open mediaplayer object with audio resource.");} return duration; } 

Aquí está lo extraño. Este código se llama en una actividad principal que prepara el conjunto de instrucciones de audio para una prueba dada. No hay errores dentro de esta actividad. Pero tan pronto como se llama la segunda actividad, obtengo una larga cadena de errores en logcat.

 03-07 13:23:43.820: I/ActionLogger(21435): GenTest_Info_Test #0 successfully created. 03-07 13:23:43.830: I/ActionLogger(21435): GenTest_Info_Test #1 successfully created. 03-07 13:23:43.840: I/ActionLogger(21435): GenTest_Info_Test #2 successfully created. 03-07 13:23:43.850: I/ActionLogger(21435): GenTest_Info_Test #3 successfully created. <snip> 03-07 13:23:43.910: I/ActionLogger(21435): GenTest_Info_all tests successfully created. 03-07 13:23:47.260: W/MediaPlayer(21435): mediaplayer went away with unhandled events 03-07 13:23:47.260: W/MediaPlayer(21435): mediaplayer went away with unhandled events 03-07 13:23:47.260: W/MediaPlayer(21435): mediaplayer went away with unhandled events 03-07 13:23:47.260: W/MediaPlayer(21435): mediaplayer went away with unhandled events 03-07 13:23:47.260: W/MediaPlayer(21435): mediaplayer went away with unhandled events 03-07 13:23:47.260: W/MediaPlayer(21435): mediaplayer went away with unhandled events 03-07 13:23:47.260: W/MediaPlayer(21435): mediaplayer went away with unhandled events 03-07 13:23:47.260: W/MediaPlayer(21435): mediaplayer went away with unhandled events 03-07 13:23:47.270: W/MediaPlayer(21435): mediaplayer went away with unhandled events <snip> 

He avanzado solo hasta el final de la actividad principal (sin errores) y desde la primera línea de la segunda actividad. Los errores definitivamente se lanzan entre las actividades.
Además, si comento las ocho líneas del bloque try (volviendo sólo a cero), se evitan los errores logcat. Cuando restauro las ocho líneas los errores vuelven. He cavado a través de la documentación y buscado en la web, y creo que estoy construyendo correctamente, liberando y destruyendo el objeto mediaplayer, así que no puedo ver por qué estoy recibiendo un error. Dicho esto, debo estar haciendo algo mal. ¿Algunas ideas?

Gracias,

Kevin

Sólo mp.reset(); poner mp.reset(); Antes de mp.release(); .

Los cinco santos:

  if(mp!=null) { if(mp.isPlaying()) mp.stop(); mp.reset(); mp.release(); mp=null; } 
  • El volumen de Android MediaPlayer es muy bajo (Volumen ya ajustado)
  • Android Stop Música de fondo
  • Reproductor multimedia reproduciendo varios archivos al mismo tiempo
  • Mi reproductor de audio streaming continúa tocando durante una llamada telefónica - ¡no puedo hacer que se detenga! (Androide)
  • ¿Cómo reanudar el reproductor multimedia?
  • ¿Cómo puedo reproducir un flujo de audio HTTP en directo en MediaPlayer en Android?
  • Implementación de reproductor de audio en listview en android
  • Android MediaPlayer getCurrentPosition () hace que el audio tartamudea
  • Averigüe lo que MediaPlayer está reproduciendo y detenerlo enPause o onStop?
  • Reproducción de audio de MediaStore en un reproductor de medios Android
  • Android Problemas al reproducir archivos de audio
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.