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.
- Error de MediaPlayer de Android al usar las llamadas de reinicio () y de liberación ()
- Instancia de MediaPlayer: stop se comporta como una pausa
- ¿Cómo permitir a los usuarios ver y reproducir canciones en Android a las que ya tienen acceso (por ejemplo, a través de Google Play)?
- IllegalStateException que llama a MediaPlayer.reset ()
- Transmitir un audio .pls en android
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
- Pausar / Detener MediaPlayer Android en un momento determinado mediante programación
- Android Media Player no se detuvo
- Media Player inicio parada inicio
- Error al crear MediaPlayer con Uri o archivo en activos
- Android - MediaPlayer tamaño de búfer en ICS 4.0
- MediaPlayer.seekTo () no funciona para la posición sin búfer
- Android: reproductor de música por defecto en lockscreen
- Listener (o controlador) para el acabado de video
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!
- Crear diseño de forma programática en android – tema
- Cómo obtener el uso de datos móviles para mi aplicación (por ejemplo, con TrafficStats)