尝试在PhoneGap/Cordova应用中自动播放YouTube视频

wis*_*ndy 14 youtube html5 android ios cordova

我正在使用PhoneGap开发一个应用程序.所以,它是一个网络应用程序.在这个应用程序中,我需要嵌入一个YouTube视频,并在用户导航到该特定页面时自动播放.

我已经读过HTML5视频自动播放由于带宽设置而无法在移动设备上运行.我的问题是,有什么办法可以绕过这个限制吗?我不介意可以让我这样做的复杂的变通办法或黑客攻击.什么都没有.

谢谢.

Mdl*_*dlc 5

正如您自己指出的那样,代码中的所有自动播放指令在加载时都会被忽略.因此,我们将实现一个功能,将视频放入正文并开始播放.

以下javascript代码可以执行此操作:

(function() {
    document.getElementsByTagName('video')[0].play();
})()
Run Code Online (Sandbox Code Playgroud)

要在页面加载后执行此代码,我们需要设置WebViewClient并实现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);
Run Code Online (Sandbox Code Playgroud)

一个完整的例子:

    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");
Run Code Online (Sandbox Code Playgroud)