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