2013-05-07 91 views
15

我在我的Android应用中使用webView加载YouTube iframe播放器和自动播放视频。它可以在Samsung Galaxy S2 & S3上正常工作,但是在Samsung Galaxy S4上运行时,尝试自动播放时总会导致灰屏。YouTube iframe嵌入无法在Android上自动播放

在Galaxy S4上,没有自动播放功能,它工作正常,需要用户操作(点击)开始播放 (如果在playerVars中添加“自动播放:1”,则不会发生)。

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

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

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

+0

不是一个iFrame,你检查出https://developers.google.com/youtube/android/player/? – FunkTheMonk 2013-05-13 08:04:46

+0

我们不想使用此Youtube Android播放器的原因是因为没有允许任何覆盖。 – 2015-04-01 08:19:03

回答

12

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

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

编辑:

为纽带已经死了,我发现它在https://lumi.do/p/04x626i1ngvht/how-to-autoplay-html5-video-on-android

如何 “自动播放” HTML5 Android上的视频
作者Mathias Desloges在19/05/11实验室

你有没有试过在Android设备上使用新的HTML5视频标签?
我们有和我们面临的一个问题。
让我们设置上下文,我们希望视频在页面加载完成后开始播放。
根据HTML5规范,我们应该使用“自动播放”属性,但它在Android的没有效果。因此,我们有一个小脚本试图塔调用播放功能在页面加载后:

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

这再现良好的“自动播放”属性的上一 经典的桌面浏览器的行为,但对一个Android浏览器失败。
我们 试图预先定义的“回调()”函数附加到 click事件的任意节点上,而视频开始“上 点击”(正常行为)打得很好。同时继续在页面html 代码上工作,我们找到了解决方案!

不要问我为什么,但添加“海报”属性后,它的作品!

+0

你有没有尝试过我在答案结尾给出的链接? – 2013-05-16 11:31:12

+0

你会如何将'poster'属性添加到webview中的视频? – chopchop 2013-10-03 11:08:45

+1

链接已经死亡。将来,请同时引用您链接的文章中最重要的部分,以避免信息丢失。 – DarkDust 2015-01-25 18:18:44

2

我相信这是操作系统制造商由于带宽问题而不能让视频自动播放变得更加严格的一个症状。这一直是iOS中的一个问题,任何JavaScript调用play()都会失败,除非用户首先执行了一些操作,如点击。 这可能是你的情况。

2

至于回答here我相信这不仅仅限制自动播放,而是限制任何汽车事件。对我来说,这是一个jquerymobile的页面转换,当Cordova加载时触发了这个页面转换。我将它转换为点击触发,这解决了问题。