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

标签 android ios html cordova youtube

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

我了解到,由于带宽问题,HTML5 视频自动播放无法在移动设备上运行。我的问题是,是否有任何方法可以绕过此限制?我不介意可以让我做到这一点的复杂解决方法或技巧。任何东西。

谢谢。

最佳答案

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

下面的 javascript 代码可以做到这一点:

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

要在页面加载后执行这段代码,我们需要设置一个 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);

A full example :

    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");

关于android - 尝试在 PhoneGap/Cordova 应用程序中自动播放 YouTube 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32304213/

相关文章:

java - 当类似的代码不会产生错误时发生 IllegalStateException

android - 以编程方式在自定义搜索栏上设置拇指焦点和按下可绘制对象

ios - 进入后台时暂停WKWebView?

ios - 如何将颜色数组中的文本颜色分配给标签?

javascript - HTML 文件选择和 JavaScript

Android TextInputLayout/EditText 不是全尺寸和截断文本

android - 在 Android Studio 上测试 Robolectric 时出错

ios - 具有自定义约束的 UIStackView - 更改轴时出现 "Unable to simultaneously satisfy constraints"

HTML/CSS 部分无法正常工作

c# - 在 Razor 和 MVC 中为表创建提交按钮