Youtube api YouTube视频(使用最新API)赢得';你不能在Android上的Chrome上玩吗?

Youtube api YouTube视频(使用最新API)赢得';你不能在Android上的Chrome上玩吗?,youtube-api,youtube-javascript-api,youtube-iframe-api,mobile-chrome,Youtube Api,Youtube Javascript Api,Youtube Iframe Api,Mobile Chrome,我正在为一个客户开发一个网站,我被困在这一点上,因为我们都能够在Android上的Chrome上重现这个问题 无论出于何种原因,当我们在Chrome的Android上加载此页面时: 视频加载器一直在旋转,视频永远不会播放 点击它也没有任何作用(不会开始播放,不会在YouTube应用程序中打开,什么都没有) 它在其他浏览器中运行得很好(FirefoxforAndroid加载并播放得很好),所以我不明白为什么会发生这种情况 我错过了什么 是API中的调用还是什么 我迷路了。简言之,这行不通。引述:

我正在为一个客户开发一个网站,我被困在这一点上,因为我们都能够在Android上的Chrome上重现这个问题

无论出于何种原因,当我们在Chrome的Android上加载此页面时:

视频加载器一直在旋转,视频永远不会播放

点击它也没有任何作用(不会开始播放,不会在YouTube应用程序中打开,什么都没有)

它在其他浏览器中运行得很好(FirefoxforAndroid加载并播放得很好),所以我不明白为什么会发生这种情况

我错过了什么

是API中的调用还是什么


我迷路了。

简言之,这行不通。引述:

HTML5元素,在某些移动浏览器(如Chrome)中 和Safari),仅允许播放由 用户交互(例如轻敲播放器)。(……)因此 限制、功能和参数,如自动播放, 播放视频(),loadVideoById()无法在所有移动环境下工作

您正在调用
event.target.playVideo()
在您的
onPlayerReady
处理程序中,这在移动环境中是不允许的,并在控制台中抛出警告(供将来参考-我强烈建议在Chrome中使用)


那么,回到你的问题上来——我只是去掉了
onPlayerReady
处理程序,而是使用
autoplay
player变量。它应该可以在台式机上运行,也不会破坏手机上的播放器。

我在运行Android 5.1.1的Nexus 5上测试了您的网页,发现了一些问题:

首先,我得到了这个错误:

无法在“DOMWindow”上执行“postMessage”:!==

我认为这是http vs https错误,但在我刷新页面后,错误消失了,我看到了一个新的警告:

未能对“HTMLMediaElement”执行“播放”:只能通过用户手势启动API

正如jkondratowicz在回答中指出的,这是移动浏览器不允许HTML5视频自动播放的副产品。我唯一能想到的就是删除与播放器和autoplay参数相关的JavaScript,并允许用户在准备好后手动启动视频播放

我在页面加载事件中添加了一个侦听器,该事件在iframe上调用
play()
,结果也很复杂:

function callback () {
    document.querySelector('ytplayer').play();
}

window.addEventListener("load", callback, false);