Tengo un WebView que aloja videos incrustados. cuando degrade el Webview, el sonido del video sigue sonando. ¿Cómo puedo detener esto? Lo intenté webview.destroy();
pero esa fuerza cierra la aplicación cuando intento abrir WebView nuevamente.WebView con video incrustado se reproduce en segundo plano
Respuesta
¿Qué quiere decir con: "cuando degrade la Webview, el sonido del video sigue sonando".
¿Es esta una aplicación personalizada? Si es así, debe compilar el archivo de manifiesto de su aplicación con android: hardwareAccelerated = true (suponiendo que esté haciendo esto en ICS o JB). Sin aceleración de hardware, solo escuchará el audio, pero el video no podrá verse (que es lo que parece que está viendo). Aquí hay alguna información sobre cómo cambiar su archivo de manifiesto: http://developer.android.com/guide/topics/graphics/hardware-accel.html
Supongo que "cuando degrade la Webview" cuando cierre la vista. De todos modos, también probé el mismo enfoque: llamar a webview.destroy(), y tuve el mismo bloqueo que tú.
El único enfoque que funcionó fue llamar a _webView.loadData ("", "text/html", "utf-8"); de mi actividad finish() método.
(basado en esta respuesta: How do I stop Flash after leaving a WebView? que realmente no funcionó ya que el onDestroy no se llamaba hasta mucho más tarde).
Debe llamar a los métodos onPause()
y onResume()
de WebView para tal fin. Normalmente lo hace en su Actividad onPause()
y onResume()
, pero también puede hacerlo siempre que esté ocultando WebView de alguna manera y sus contenidos también deben dejar de hacer lo que están haciendo, como ejecutar Javascript o reproducir un video HTML5.
Si necesita estos métodos en los niveles de la API antes del 11, se puede utilizar la reflexión de esta manera: WebView.class.getMethod("onPause").invoke(myWebView);
También puede ejecutar Java Script para pausar el vídeo/audio en onPause llamada del ciclo de vida posterior de la actividad, en a continuación ejemplo lo he hecho para audio (funcionó). Con suerte, cambiar 'audio' a 'video' te sirve.
@Override
protected void onPause() {
executeJavascript("javascript:document.querySelector('audio').pause();", new ValueCallback() {
@Override
public void onReceiveValue(Object value) {
Trace.d(TAG, value.toString());
}
});
super.onPause();
}
y
private void executeJavascript(String javascript, ValueCallback callback){
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
mWebView.evaluateJavascript(javascript, callback);
} else {
mWebView.loadUrl(javascript);
}
}
- 1. WebView no reproducirá video flash incrustado
- 2. Android webview no reproduce video, jwembedder
- 3. video HTML5 no se reproduce
- 4. Phonegap Android Webview El video solo reproduce audio
- 5. .ogg video no se reproduce en firefox
- 6. ¿Cómo se reproduce el audio transmitido en segundo plano en Android?
- 7. Dibujo WebView incrustado en ICS
- 8. El video se reproduce solo una vez en Webview de Android
- 9. Reproducir y grabar video mientras se reproduce música de fondo
- 10. Aplicación que se ejecuta en segundo plano
- 11. Depurando tareas en segundo plano
- 12. video con iframe no se muestra en Android Webview
- 13. iOS procesado en segundo plano
- 14. ¿Cómo se reproduce el video en Java Swing?
- 15. Force Vimeo HTML5 Video incrustado
- 16. Ejecutar tarea en segundo plano en JavaFX
- 17. ¿Cómo se inicia un proceso en segundo plano en Perl?
- 18. Trabajo en segundo plano en Powershell
- 19. significado de "aplicación no se ejecuta en segundo plano"
- 20. ¿Qué sucede en Activity.finish() con AsyncTask ejecutándose en segundo plano?
- 21. Inicie un proceso en segundo plano en Linux con C
- 22. Cómo programar una tarea en segundo plano
- 23. ¿Cómo se obtiene Cloud9 IDE para ejecutar en segundo plano?
- 24. Android Cámara grabación de video pero se reproduce boca abajo
- 25. Procesos en segundo plano en lote con salida redirigida
- 26. mantener aplicación que se ejecuta en segundo plano
- 27. shell_exec no se ejecuta en segundo plano, ¿alguna otra solución?
- 28. Can Emacs de comandos se ejecutan en segundo plano
- 29. Evitar que se ejecute la tarea en segundo plano dispatch_after()
- 30. ¿Cómo vlc.py reproduce la transmisión de video?