Tratando de reproducir videos de YouTube en una aplicación PhoneGap / Cordova

Estoy desarrollando una aplicación con PhoneGap . Entonces, es una aplicación web. En esta aplicación, tengo el requisito de insert un video de YouTube y reproducirlo automáticamente cuando el usuario navega hacia esa página en particular.

He leído que la reproducción automática de video HTML5 no funciona en dispositivos mobilees debido a concordes de ancho de banda. Mi pregunta es que ¿hay alguna forma de evitar esta restricción? No me importa soluciones complejas o hacks que me permitan hacer esto. Nada en absoluto.

Gracias.

Como señaló usted mismo, todas las instrucciones de reproducción automática en su código serán ignoradas al cargarlas. Entonces implementaremos una function que obtiene el video en el cuerpo y comienza a reproducirse.

El siguiente código javascript podría hacer esto:

(function() { document.getElementsByTagName('video')[0].play(); })() 

Para ejecutar este código después de que la página se haya cargado, debemos configurar un WebViewClient e implementar onPageFinished ()

 webview.setWebViewClient(new CordovaWebViewClient(this, webview) { // autoplay when finished loading via javascript injection public void onPageFinished(WebView view, String url) { webview.loadUrl("javascript:(function() { document.getElementsByTagName('video')[0].play(); })()"); } }); final WebSettings settings = webview.getSettings(); settings.setJavaScriptEnabled(true); settings.setJavaScriptCanOpenWindowsAutomatically(true); settings.setPluginState(WebSettings.PluginState.ON); 

Un ejemplo completo :

  webview = new CordovaWebView(this); setContentView(webview); final WebSettings settings = webview.getSettings(); settings.setJavaScriptEnabled(true); settings.setJavaScriptCanOpenWindowsAutomatically(true); settings.setPluginState(WebSettings.PluginState.ON); webview.setWebViewClient(new CordovaWebViewClient() { // autoplay when finished loading via javascript injection public void onPageFinished(WebView view, String url) { webview.loadUrl("javascript:(function() { document.getElementsByTagName('video')[0].play(); })()"); } }); webview.loadUrl("http://html5demos.com/video"); 

Hay un complemento cordova / phonegap que promete hacer esto. Se basa en el método Webview setMediaPlaybackRequiresUserGesture , agregado en el API nivel 17 (Android 4.2).

Simplemente llama a este método en la vista web:

 WebView view = getWebViewFromPlugin(); view.getSettings().setMediaPlaybackRequiresUserGesture(false); 

También está disponible en phongap build .