tener reproductor reproducir poner pantalla música escuchar con como caratula bloqueo bloqueada apagada android cordova audio background

android - reproductor - widget spotify pantalla de bloqueo



Detener la reproducción de audio de la aplicación Android cuando el dispositivo está bloqueado (1)

Tuve el mismo problema con que Google rechazara la aplicación porque la vista web continúa reproduciendo el audio del video de youtube al presionar el botón de encendido para apagar la pantalla.

Por alguna razón, parece que al presionar el botón de encendido no se activa la vista web onPause (), que es la razón por la cual el audio continúa sonando. Si bien esto es útil para mantener la reproducción de la música mientras la pantalla está apagada, a Google no le gusta este comportamiento para los videos de YouTube.

Para hacer feliz a Google, puede anular onPause () de su actividad / fragmento de esta manera:

@Override public void onPause() { super.onPause(); myCustomWebView.onPause(); }

Al presionar el botón de encendido ahora también se activará onPause () en la vista web. Sin embargo, esto crea otro problema: ¿qué pasa con el audio que realmente desea seguir reproduciendo mientras la pantalla está apagada?

Una solución que surgió es la de anular onLoadResource () de WebViewClient, que me permite verificar si el recurso es de youtube, que determina si se debe llamar a la vista web onPause () cuando llegue el momento. Algo como esto:

myCustomWebView.setWebViewClient(new WebViewClient() { @Override public void onLoadResource(WebView webview, String url) { super.onLoadResource(webview, url); if (url.contains("youtube.com")) mShouldPause = true; } //...... plus any other method you want to override });

Por supuesto, esto significa que cualquier recurso que tenga "youtube.com" en su url activará la bandera, pero para mi necesidad, esto será suficiente. Entonces el método onPause () ahora se verá así:

@Override public void onPause() { super.onPause(); // mShouldPause is just a private boolean if (mShouldPause) { myCustomWebView.onPause(); } mShouldPause = false; }

Así que esta es la solución que se me ocurrió sin meterme con el funcionamiento interno de la vista web utilizando la reflexión. Es posible que desee crear una notificación que tenga un botón para detener el audio o que devuelva al usuario a su aplicación para que el usuario no olvide qué aplicación está emitiendo el sonido y piense que el teléfono está embrujado.

Tengo una situación en la que tenemos una aplicación de Android usando una vista web. Cuando el usuario navega hacia un video de YouTube, comienza a reproducirse (con audio) y luego el usuario bloquea el dispositivo usando el interruptor de hardware del dispositivo, y sigue reproduciendo el audio.

Esto no ocurre cuando la aplicación se envía a segundo plano utilizando el menú del dispositivo o cuando se cierra la aplicación.

¿Alguien sabe por qué ocurre esto y cómo detenerlo?

EDITAR: Acabo de encontrar una publicación similar, sin respuesta, aquí: la aplicación habilita la reproducción en segundo plano de videos, problemas de cordova, aplicaciones de rechazo de google play