我在我的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
无法自动播放时.我不知道这个消息是什么; 我用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);
这是一个已知问题,还是有任何自动播放视频的解决方案?谢谢!
我认为禁用自动播放正在成为一种"标准".
在iOS Safari中,禁用HTML5标记中的自动播放.(http://developer.apple.com/library/safari/#documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/Device-SpecificConsiderations/Device-SpecificConsiderations.html#//apple_ref/doc/uid/TP40009523-CH5-SW4)
在Chrome中,自动播放也会被禁用.(https://code.google.com/p/chromium/issues/detail?id=159336)
我相信最新版本的默认Android Web浏览器也会出现同样的情况.
顺便说一句,你可以试试这个
编辑:
由于链接已经死亡,我在https://lumi.do/p/04x626i1ngvht/how-to-autoplay-html5-video-on-android中找到了它:
如何在Android上"自动播放"HTML5视频
由Mathias Desloges在实验室撰写于19/05/11
您是否曾尝试在Android设备上使用新的HTML5视频标签?
我们已经面临着这个问题.
让我们设置上下文,我们希望我们的视频在页面加载完成后开始播放.
根据HTML5规范,我们应该使用"autoplay"属性,但它在Android中没有效果.所以我们试着用一个小脚本在页面加载后调用play函数:
function callback () { document.querySelector('video').play(); } window.addEventListener("load", callback, false);
这很好地再现了经典桌面浏览器上"autoplay"属性的行为,但在Android浏览器上它失败了.
我们尝试将先前定义的"callback()"函数附加到任意节点上的click事件,并且视频开始"点击"(正常行为).在继续处理页面html代码的同时,我们找到了解决方案!不要问我为什么,但在添加"海报"属性后它才有效!