在 Android Webview 中自动播放 Youtube

Posted

技术标签:

【中文标题】在 Android Webview 中自动播放 Youtube【英文标题】:Auto Play Youtube in Android Webview 【发布时间】:2019-02-23 16:02:42 【问题描述】:

Youtube 自动播放标签在 android Webview iframe 中不起作用。 怎么去掉cc标签?

html 需要在 webview 中加载:

<!DOCTYPE html>
<html>
    <style>
    .center
        position: absolute;
        margin: auto auto;
        right: 0;
        left: 0;
        bottom: 0;
        top: 0;
    

    </style>
    <body style="background:#000">
        <iframe id="videoContainer" class="center"  
                src="https://www.youtube.com/embed/5jnqWIlaLyA?rel=0&controls=1&showinfo=0&autoplay=1"
                frameborder="0" allow="autoplay; encrypted-media" allowfullscreen>
        </iframe>
    </body>
</html>

在网站上运行相同的代码。

Content 变量保存上面提到的 html。 当前的 Android 代码:

 mWebView.getSettings().setjavascriptEnabled(true);
        mWebView.getSettings().setAppCacheEnabled(false);
        mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
        mWebView.getSettings().setMediaPlaybackRequiresUserGesture(false);

        view.loadDataWithBaseURL(null, content, "text/html", "utf8", view.getUrl());

【问题讨论】:

【参考方案1】:

自 Android SDK 17 起默认禁用自动播放,您可以将 setMediaPlaybackRequiresUserGesture 设置为 false 以重新启用自动播放。然后您还需要检查 SDK 版本,因为此功能不在早期版本中。

支票:

int SDK_INT = android.os.Build.VERSION.SDK_INT;
if (SDK_INT > 16) 
    engine.getSettings().setMediaPlaybackRequiresUserGesture(false);

【讨论】:

您是否在 webView 上将 setMedioPlaybackRequiresUserGesture 设置为 true?【参考方案2】:

您的 src 属性中似乎有错误的 url 格式

https://www.youtube.com/embed/5jnqWIlaLyA?rel=0&controls=1&showinfo=0&autoplay=1&cc_load_policy=3

还可以查看此网址以获取参考:

https://developers.google.com/youtube/player_parameters

【讨论】:

已经检查过了,在我看来,格式是正确的。如果我做错了,请告诉我 请检查问题

以上是关于在 Android Webview 中自动播放 Youtube的主要内容,如果未能解决你的问题,请参考以下文章

在 Android WebView 中自动播放嵌入的 YouTube 视频有啥新技巧吗?

在 webview 中自动播放视频

webview自动循环播放

android webview youtube嵌入视频自动播放不起作用

Android webview html5 视频自动播放在 android 4.0.3 上不起作用

为啥 Youtube 视频没有在 webview android 中播放