MediaPlayer TimeoutException

He hecho una aplicación de Android y ahora está en Google Play. Pero ahora alguien reportó un Crash, y el stacktrace dijo lo siguiente:

java.util.concurrent.TimeoutException: android.media.MediaPlayer.finalize() timed out after 10 seconds at android.media.MediaPlayer.native_finalize(Native Method) at android.media.MediaPlayer.finalize(MediaPlayer.java:1960) at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:187) at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:170) at java.lang.Thread.run(Thread.java:856) 

Y no hay ninguna señal de algún código de uno de mis paquetes. Yo uso la clase MediaPlayer. ¿Alguien que pueda ayudarme aquí?

Jesse.

Llame a MediaPlayer.release() en su código (por ejemplo, en Activity.onPause() ). MediaPlayer.finalize() menos trabajo en MediaPlayer.finalize() y la excepción desaparecerá.

Para capturar este error, puede implementar un android.media.MediaPlayer.OnErrorListener en su Fragmento o Actividad.

 /* * Called to indicate an error. Parameters * * mp the MediaPlayer the error pertains to what the type of error that has * occurred: MEDIA_ERROR_UNKNOWN MEDIA_ERROR_SERVER_DIED extra an extra * code, specific to the error. Typically implementation dependant. Returns * True if the method handled the error, false if it didn't. Returning * false, or not having an OnErrorListener at all, will cause the * OnCompletionListener to be called. */ @Override public boolean onError(MediaPlayer mp, int what, int extras) { return true; } 

Cuando crea su MediaPlayer asegúrese de llamar

 mediaPlayer.setOnErrorListener(this); 

Algunos pensamientos:

  • ¿Has localizado qué hilo está haciendo esto? Parece que no es el hilo principal de la interfaz de usuario y que debería ser capaz de captar esa excepción.
  • Al igual que la respuesta anterior, deberías considerar repensar cuando sueltes tu reproductor.
  • Un error que todavía estoy enfrentando es con el servicio de audioflinger. Hace que todos los reproductores multimedia en ejecución pasen a estado de error (manejado con el código de error (100, 0)). El jugador entra en estado de error y no puedo reanudar la forma en que fue

Creo que el proceso mediaserver en el cliente se ha estrellado.

  • Convierta un sitio web con un diseño de respuesta a la aplicación de Android
  • OnPageFinished no disparar correctamente al procesar la página web
  • Detectar la actualización de la aplicación de Android y establecer la clase de aplicación booleana para mostrar / ocultar el CLUF
  • Android: ¿Qué debo hacer en lugar de usar una función obsoleta (getwidth ())?
  • ¿Es seguro pasar el contexto a varios hilos?
  • Android ViewAnimator base de cambio de altura en el niño
  • Compilador de Java erróneo al incluir un módulo de Java como dependencia en Android Studio
  • ISO 8601 con milisegundos y Retrofit
  • Todo lo probado excepto el acabado android (); La actividad no funciona
  • Android Cambia el texto de TextView de otra clase
  • Fecha sin par: "Fri Oct 10 23:11:07 IST 2014" (al compensar 20)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.