当视频取消静音时,无法通过iFrame API播放YouTube视频
自从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参数嵌入视频。但是,即使我这样做了,如果我尝试在播放视频之后取消静音播放器(使用ytPlayer.unMute()
),视频仍会再次停止。
关于这个Chrome72更新有什么变化有什么想法吗?这是YouTube/Chrome错误还是预期行为?
谢谢!
解决方案
"player.play()"在最新版本的Chrome上不起作用,我们可以通过向父iFrame添加Allow="Autoplay"属性来解决此问题
要了解根本原因,可以查看:"发生了什么变化?"@https://developers.google.com/web/updates/2019/01/user-activation
相关文章