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


Uso de WakeLock para mantener una reproducción en secuencia

Tengo un MediaPlayer ejecutándose en un servicio que está reproduciendo audio desde una URL (streaming). A partir de ahora parece que funciona bien, e incluso sigue jugando cuando pongo el teléfono en modo de espera.

Actualmente no adquirir un wakelock. Mi pregunta es:

  • ¿Es realmente necesario adquirir un wakelock en mi situación?
  • Si es necesario, ¿qué tipo de wakelock debo adquirir?

Y sí, este es un caso de uso legítimo para wakelock, porque mis usuarios quieren explícitamente que el audio continúe jugando.

  • Preguntas para principiantes: Wakelocks
  • Servicio, WakeLock
  • StandBy como actividad
  • ¿Cómo desactiva Android Wear cuando está en modo de suspensión?
  • ¿Sigue funcionando un servicio incluso cuando el teléfono está dormido?
  • WakeLock bajo bloqueo GCM_LIB
  • El bloqueo de la repetición produce una excepción en Nexus 5
  • AlarmManager no siempre ejecuta BroadcastReceiver
  • 5 Solutions collect form web for “Uso de WakeLock para mantener una reproducción en secuencia”

    MediaPlayer no lo hace automáticamente por defecto.

    Sin embargo, en lugar de tener que adquirir un bloqueo de despertador, tiene un método que puede llamar para decirle que mantenga uno durante su reproducción:

    http://developer.android.com/reference/android/media/MediaPlayer.html#setWakeMode(android.content.Context, int)

    Tenga en cuenta que, como dice la documentación, sigue siendo su aplicación la celebración de la vigilia de bloqueo por lo que para utilizar esta función tendrá que solicitar el permiso de bloqueo de estela.

    1. Mire el teléfono durante unos cinco minutos cuando está en modo de espera. Si continúa jugando, no necesita un bloqueo de despertador; Probablemente indica que la instancia de MediaPlayer ya tiene uno. En Android, después de unos dos minutos de inactividad del usuario, cualquier cosa no esencial que no tenga un wakelock se suspenderá; Cinco minutos deben quitar cualquier duda que rodea el temporizador de dos minutos.
    2. Pruebe un bloqueo parcial de la sesión. Permitirá a sus usuarios escuchar el audio, ya que el procesador se mantendrá "despierto". Sin embargo, no desperdiciará la batería al mostrar una imagen, ya que se permite que la pantalla se vaya a dormir. Esto es probablemente lo que quieres.

    EDIT: Si desea jugar en el lado seguro, entonces desea utilizar un WakeLock. De esta forma si MediaPlayer cambia y se le permite ir a dormir cuando el teléfono suspende su programa seguirá funcionando correctamente. Realmente no hay nada que perder añadiendo el WakeLock siempre y cuando usted lo corrija cuando ya no es necesario. Si no lo hace, simplemente drenará más batería de la que pretende y, en el peor de los casos, verá inmediatamente un error que indica que no liberó el bloqueo cuando termina su aplicación. La adición de un WakeLock, aunque potencialmente redundante, es una buena práctica ya que hace que su aplicación sea más robusta frente a los cambios en el software de los que depende.

    Probablemente necesitará un WakeLock, ya que no puede garantizar que el PowerManager no se ponga en marcha y no pueda dormir durante la reproducción. El PARTIAL_WAKE_LOCK garantizará que se emplee el nivel más bajo de drenaje de la batería (CPU encendido, pantalla / teclado apagados). Siempre se puede probar el efecto de la batería de drenaje, pero dudo que será grande, ya que la CPU debe ser de todos modos con el fin de reproducir la música. Este método garantizará que no importa qué teléfono se utilice (o ajustes en dicho teléfono), la reproducción no se cortará de la CPU que va a dormir.

    No creo que necesites un WakeLock para esto. Al comenzar por primera vez con MediaPlayer, descubrí muy rápidamente que simplemente no se calla en modo de espera. Me tomó un poco de trabajo sólo para superar eso, pero nunca he visto un caso en que el modo de espera hace que un objeto MediaPlayer de streaming muera.

    No necesita un WAKE LOCK. Si utiliza WAKE LOCK, forzará a los usuarios a mantener la pantalla encendida, yo personalmente prefiero apagar la pantalla durante la reproducción de los medios.

    Ejemplo de servicio de larga duración aquí ejemplo

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