YouTube视频(使用最新的API)无法在Android上的Chrome上播放?
我正在为客户开发一个网站,并且一直停留在这一点,因为我们两个都能够在Android上的Chrome中重新创建此问题。YouTube视频(使用最新的API)无法在Android上的Chrome上播放?
无论出于何种原因,当我们在Android版Chrome加载这个页面:
视频装载机只是不断旋转和纺纱和视频从来不玩。
然后点击它也不会做任何事情(不开始播放,不在YouTube应用程序中打开它,没有任何东西)。
它在其他浏览器(Firefox for Android加载它并播放它就好)中工作得很好,所以我很困惑,为什么会发生这种情况。
我缺少什么?
这是API中的一些调用还是什么?
我迷路了。
总之,它不会工作。引述documentation:
The HTML5 element, in certain mobile browsers (such as Chrome and Safari), only allows playback to take place if it's initiated by a user interaction (such as tapping on the player). (...) Due to this restriction, functions and parameters such as autoplay, playVideo(), loadVideoById() won't work in all mobile environments.
你在你的onPlayerReady
处理,未在移动环境允许并抛出控制台的警告呼吁event.target.playVideo();
(以供将来参考 - 我强烈建议在Chrome中使用Remote Debugging)。
所以,回到你的问题 - 我只是摆脱onPlayerReady
处理程序,并使用autoplay
球员变量。它应该在桌面上工作,而不是在移动设备上破坏玩家。
我测试了我的Nexus 5运行的是Android 5.1.1您的网页,发现了一些问题:
首先我得到这个错误:
Failed to execute 'postMessage' on 'DOMWindow': https://www.youtube.com !== http://miso.gostppro.com
,我认为是一个http和https错误,但我刷新后,错误的页面走了,我看到了一个新的警告:
Failed to execute 'play' on 'HTMLMediaElement': API can only be initiated by a user gesture.
正如jkondratowicz的答复中指出,这是移动浏览器不允许自动播放的副产品在HTML5视频上。唯一能想到的是删除与播放器相关的任何JavaScript和自动播放参数,并允许用户在准备好时手动启动视频播放。
我也越来越结果好坏参半的结果与添加监听到的iframe会调用play()
页面加载事件:
function callback() {
document.querySelector('ytplayer').play();
}
window.addEventListener("load", callback, false);