17

我在我的 Android 应用程序中使用 webView 来加载 YouTube iframe 播放器和自动播放视频。它在三星 Galaxy S2 和 S3 上运行良好,但在三星 Galaxy S4 上运行时,尝试自动播放时总是出现灰屏。

在 Galaxy S4 上,它在没有自动播放的情况下工作正常,需要用户操作(单击)才能开始播放(如果在 playerVars 中添加“autoplay:1”则什么都没有发生)。

我试图在 onPlayerReady() 中调用 player.playVideo(),它导致了这个灰屏:

在此处输入图像描述

LogCat 还显示了一个奇怪的错误消息:

E/IMGSRV(17004): :0: GetPTLAFormat: Invalid format

无法自动播放时。我不知道这条消息是关于什么的;我已经用谷歌搜索了它并没有发现任何东西。

这是WebView的Android代码:

WebView wv = (WebView) findViewById(R.id.webview);
WebSettings websettings = wv.getSettings();
websettings.setJavaScriptEnabled(true);
websettings.setDomStorageEnabled(true);
websettings.setDatabaseEnabled(true);
wv.loadUrl(strUrl);
wv.setWebViewClient(new WebViewClient());
wv.setWebChromeClient(new WebChromeClient());
wv.setPadding(0, 0, 0, 0);
wv.getSettings().setLoadWithOverviewMode(true);
wv.getSettings().setUseWideViewPort(true);
wv.setVerticalScrollBarEnabled(false);
wv.setHorizontalScrollBarEnabled(false);

这是一个已知问题,还是有任何自动播放视频的解决方案?谢谢!

4

3 回答 3

12

我认为禁用自动播放正在成为一种“标准”。

顺便说一句,你可以试试这个

编辑:

由于链接已失效,我在https://lumi.do/p/04x626i1ngvht/how-to-autoplay-html5-video-on-android中找到了它:

如何在 Android 上“自动播放”HTML5 视频
由 Mathias Desloges 于 2011 年 5 月 19 日在 Labs 中撰写

您是否尝试过在 Android 设备上播放新的 HTML5 视频标签?
我们有,这是我们面临的一个问题。
让我们设置上下文,我们希望我们的视频在页面加载完成后开始播放。
根据 HTML5 规范,我们应该使用“autoplay”属性,但它在 Android 中不起作用。所以我们尝试了一个小脚本,在页面加载后调用 play 函数:

function callback () { document.querySelector('video').play(); } 
window.addEventListener("load", callback, false);

这很好地再现了经典桌面浏览器上“自动播放”属性的行为,但在 Android 浏览器上却失败了。
我们尝试将先前定义的“callback()”函数附加到任意节点上的单击事件,并且视频在“单击”时开始播放良好(正常行为)。在继续处理页面 html 代码的同时,我们找到了解决方案!

不要问我为什么,但是在添加“海报”属性之后它就起作用了!

于 2013-05-15T18:14:32.470 回答
2

我相信这是操作系统制造商由于带宽问题而变得更加严格的症状,不允许视频自动播放。一段时间以来,这一直是 iOS 上的一个问题,除非用户首先执行了诸如单击之类的操作,否则对 play() 的任何 JavaScript 调用都会失败。这很可能是你的情况。

于 2013-05-14T16:05:46.517 回答
2

正如在此处回答的那样,我相信这不仅限制了自动播放,还限制了任何自动事件。对我来说,这是在加载 Cordova 时触发的 jquerymobile 中的页面转换。我将它切换为由点击触发,这解决了问题。

于 2013-07-26T09:57:31.023 回答