当视频取消静音时,无法通过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=1url参数嵌入视频。但是,即使我这样做了,如果我尝试在播放视频之后取消静音播放器(使用ytPlayer.unMute()),视频仍会再次停止。

关于这个Chrome72更新有什么变化有什么想法吗?这是YouTube/Chrome错误还是预期行为?

谢谢!


解决方案

"player.play()"在最新版本的Chrome上不起作用,我们可以通过向父iFrame添加Allow="Autoplay"属性来解决此问题

要了解根本原因,可以查看:"发生了什么变化?"@https://developers.google.com/web/updates/2019/01/user-activation

相关文章