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 agregado los archivos de audio como recursos y juegan muy bien. El siguiente código de ejemplo funciona realmente perfecto para su propósito previsto: devuelve la duración de los archivos de audio.Android: mediaplayer se fue con eventos no administrados
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;
}
Esto es lo raro. Este código se llama en una actividad principal que prepara el conjunto de instrucciones de audio para una prueba determinada. No hay errores dentro de esta actividad. Pero tan pronto como se llama a la segunda actividad, recibo 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>
tengo hasta el final de la actividad principal (sin errores) y desde la primera línea de la segunda actividad intensificado sola. Los errores definitivamente se lanzan entre las actividades.
Además, si comente las ocho líneas del bloque try (devolviendo solo cero), se evitarán los errores de logcat. Cuando restauro las ocho líneas, vuelven los errores. He buscado en la documentación y buscado en la web, y creo que estoy construyendo, liberando y destruyendo correctamente el objeto del reproductor multimedia, por lo que no veo por qué me aparece un error. Dicho esto, debo estar haciendo algo mal. ¿Algunas ideas?
Gracias,
Kevin
excelente. ¡Eso lo solucionó! ¡Gracias! – Hephaestus
¿Qué hace eso? – Casebash
versión hace que mi videoview se bloquee con IllegalStateException después ... – Ron