Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Debería un MediaPlayer ejecutarse en hilos separados?

Estoy creando una aplicación que transmite música desde un servidor web. La aplicación tiene servicio de primer plano que utiliza un MediaPlayer para su reproducción.

Mi código se basa en este ejemplo: http://developer.android.com/guide/topics/media/mediaplayer.html

  • Ruta de construcción incompleta sólo en algunos espacios de trabajo (Android)
  • Nexus 7 no visible sobre USB a través de "dispositivos adb" de Windows 7 x64
  • ¿Cómo hago para que el estado "deshabilitado" de un Spinner esté deshabilitado?
  • Recibir y procesar un Dictionary <string, List <string >> desde Soap usando KSoap2
  • Cómo eliminar el ". 0" en un número entero cuando se utiliza doble en java?
  • ¿Cómo puedo eliminar automáticamente la salida logcat antes de cada ejecución en Android Studio?
  • En el ejemplo, nada se enhebra excepto la llamada prepareAsync (). Lo que me confunde es que cuando leo sobre la clase de servicio encuentro esta información:

    "Precaución: Un servicio se ejecuta en el subproceso principal de su proceso de alojamiento: el servicio no crea su propio subproceso y no se ejecuta en un proceso separado (a menos que se especifique lo contrario) .Esto significa que si su servicio va a hacer cualquier El trabajo intensivo de la CPU o las operaciones de bloqueo (como la reproducción de MP3 o la creación de redes), debe crear un nuevo hilo en el servicio para hacer ese trabajo. Utilizando un hilo independiente, reducirá el riesgo de errores de la aplicación no responde (ANR) El hilo principal de la aplicación puede permanecer dedicado a la interacción del usuario con sus actividades ".

    La razón que estoy pidiendo es que la aplicación algunas veces (generalmente al perder la conexión) congela la interfaz de usuario al transmitir audio. Entiendo totalmente que la interfaz de usuario se bloquea si el servicio está haciendo un trabajo intenso de la CPU, ya que la actividad y el servicio se ejecutan en el mismo subproceso. Pero, ¿debería esperar que el MediaPlayer sea tan intenso? Es decir, si se ejecuta en un hilo separado?

  • Cómo anular el registro del teléfono de la mensajería en la nube de firebase
  • ¿Cómo obtengo órdenes de reembolso de Google?
  • Android Maps V2 MapView dentro de un fragmento personalizado (NPE)
  • Android Studio: "La instalación del SDK no tiene" Extras> Android Support Repository "instalado", PERO HA SIDO INSTALADO
  • Driver android usb adb para htc desire hd
  • Camera.open () devuelve null
  • 3 Solutions collect form web for “¿Debería un MediaPlayer ejecutarse en hilos separados?”

    Lamentablemente, llamar a prepareAsync () simplemente no es lo suficientemente bueno como para evitar los mensajes de ANR y su aplicación colgando durante unos segundos, especialmente si está reproduciendo un archivo de la red. Lo mejor es poner tu instancia de MediaPlayer en su propio hilo, o al menos ejecutar llamadas intensivas en un Handler (como mediaplayer.start() ). He estado usando MediaPlayer durante más de un año y puedo decir que definitivamente se bloquea después de varias llamadas, dependiendo de las circunstancias.

    ¿Podría la música en streaming hacer que el hilo principal se detenga hasta que la música haya terminado de transmitir? Esto podría ser la razón por la que se está ralentizando.

    No soy un experto y actualmente estoy aprendiendo, pero vale la pena pensarlo.

    No, si usted está haciendo cualquier transferencia de red que debe mantener en un hilo, mediaplayer no es que el uso intensivo de recursos. Manténgalo en su actividad.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.