YouTube iframe嵌入无法在Android上自动播放

时间:2013-05-07 10:37:07

标签: android youtube-api android-webview samsung-mobile

我在Android应用中使用了一个webView来加载YouTube iframe播放器和自动播放视频。它适用于三星Galaxy S2& S3,但是当在三星Galaxy S4上运行时,它在尝试自动播放时总是会出现灰色屏幕。

在Galaxy S4上,没有自动播放工作正常,需要用户操作(点击)才能开始播放 (如果在playerVars中添加“autoplay:1”,则没有任何反应。)

我试图在onPlayerReady()中调用player.playVideo(),导致出现这个灰色屏幕:

enter image description here

LogCat还会显示一条奇怪的错误消息:

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

无法自动播放。我不知道这个消息是什么;我用Google搜索了一下,什么也没找到。

以下是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);

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

3 个答案:

答案 0 :(得分:12)

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

顺便说一下,你可以尝试this

编辑:

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

  

如何在Android上“自动播放”HTML5视频
  由Matias Desloges于2005年5月19日撰写的实验室撰写。
  您是否尝试在Android设备上使用新的HTML5视频标签?
  我们已经面临着这个问题   让我们设置上下文,我们希望我们的视频在页面加载完成后开始播放   根据HTML5规范,我们应该使用“autoplay”属性,但它在Android中没有效果。所以我们尝试了一个小脚本,在页面加载后调用play函数:

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

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

     

     

不要问我为什么,但在添加“海报”属性后它才有效!

答案 1 :(得分:2)

我认为这是操作系统制造商因为带宽问题而不允许视频自动播放的限制因素。这已成为iOS上的一个问题,因为任何JavaScript调用play()都会失败,除非用户先执行了某些操作,例如点击。 这可能就是你的情况。

答案 2 :(得分:2)

回答here我认为这不只是限制自动播放,而是限制任何自动事件。对我来说,这是jquerymobile中的页面转换,当Cordova加载时触发了该转换。我把它切换为偶然点击触发,这解决了问题。