YouTube视频(使用最新的API)无法在Android上的Chrome上播放?

问题描述:

我正在为客户开发一个网站,并且一直停留在这一点,因为我们两个都能够在Android上的Chrome中重新创建此问题。YouTube视频(使用最新的API)无法在Android上的Chrome上播放?

无论出于何种原因,当我们在Android版Chrome加载这个页面:

http://miso.gostppro.com

视频装载机只是不断旋转和纺纱和视频从来不玩。

然后点击它也不会做任何事情(不开始播放,不在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);