自Chrome更新到版本72后,我在YouTube Iframe API上运行的自定义播放器停止运行。它仍可在Firefox或Chrome <= 71上完美运行。
使用下面的代码,当触发功能播放()时,视频开始缓冲然后停止,而不播放。
function onYouTubeIframeAPIReady() {
ytIframe = $("#player")[0];
ytPlayer = new YT.Player(ytIframe, {
events: {
'onReady': () => {},
'onStateChange': () => {}
}
});
}
function play() {
ytPlayer.playVideo();
}
使其工作的唯一方法是在iframe src上使用mute=1
url param嵌入视频。但即使我这样做,如果我尝试在playVideo(使用ytPlayer.unMute()
)之后取消静音播放器,视频也会再次停止。
有关此Chrome 72更新的更改内容的任何想法?这是YouTube / Chrome错误还是预期的行为?
谢谢!
“player.play()”无法在最新版Chrome上运行,我们可以通过将allow =“autoplay”属性添加到您的父iframe来解决此问题
要了解根本原因,您可以检查:“有什么变化?” @ https://developers.google.com/web/updates/2019/01/user-activation
您描述了新的Chrome行为。
您现在必须手动点击iframe - 开始播放或取消静音。
要使用“自动播放”,您还必须使用“静音”。确保不要禁用“控件”,因为用户必须单击扬声器符号才能启用声音。