MediaPlayer en subproceso separado utilizando Service o IntentService

Hola, necesito una instancia de MediaPlayer para ejecutar en segundo plano, así que empecé a usar un servicio.

Todo funciona bien, pero me dan ANR (aplicación no responde) después de un tiempo, incluso si la interfaz de usuario funciona perfectamente. Justo lo suficiente, sé Servicios siguen funcionando en el hilo principal por lo que la ANR tiene sentido.

Así que traté de usar IntentService, que debería generar su propio hilo, pero no tengo nada más que dolores de cabeza. IntentService parece estar bien cuando los trabajadores son independientes pero eso no es el caso aquí porque necesito llamar al método startService (intención) de la aplicación principal cada vez que necesito cambiar la pista y no quiero terminar con múltiples instancias de MediaPlayer Jugar uno encima del otro ..

También vi una pista que sugiere usar un hilo dentro de un servicio. ¿Cómo hago eso con Media Player? ¿Debe la DECLARACIÓN estar en ese hilo o simplemente el "preparar / iniciar, etc"? De lo que vi que no parece que funcione, pero podría simplemente implementado mal

Cualquier sugerencia es muy apreciada, posiblemente con un ejemplo muy simple.

aclamaciones

Le recomiendo que lea la documentación de capacitación aquí: http://developer.android.com/guide/components/services.html

Esto fue muy útil para mí. Y luego la aplicación NPR que transmite audio es de código abierto, así que echa un vistazo a su servicio aquí: http://code.google.com/p/npr-android-app/source/browse/Npr/src/org/npr/android /news/PlaybackService.java

Lectura de ambos, yo recomendaría el uso de un servicio y la manipulación de los hilos de ti mismo. No he trabajado con IntentService todavía, pero de su experiencia parece que es la clase incorrecta para hacer frente a la transmisión de música. ¡Espero que ayude!

  • ¿Códigos de error de Android MediaPlayer?
  • MediaPlayer setDataSource necesita asesoramiento sobre las mejores prácticas
  • Detener / liberar Mediaplayer en onDestory () hace que NullPointerException
  • Reproductor de medios Android Reiniciar audio después de llamar a Stop
  • VideoView: IllegalStateException en MediaPlayer.getVideoWidth
  • Android Problemas al reproducir archivos de audio
  • Quiero evitar que mi aplicación de reproductor de música explore los directorios de archivos de audio cada vez que se inicie la aplicación. ¿Cómo puedo hacer eso?
  • Averigüe lo que MediaPlayer está reproduciendo y detenerlo enPause o onStop?
  • La reproducción de una canción tras otra provoca un error en MP3Extractor
  • Mostrar la hora en que se reproduce la canción en android
  • Android MediaPlayer Detener y reproducir
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.