视频取消静音时无法通过 iframe API 播放 YouTube 视频

Ped*_*ros 5 javascript embed youtube google-chrome youtube-javascript-api

自从 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();
}
Run Code Online (Sandbox Code Playgroud)

使其工作的唯一方法是使用mute=1iframe src 上的 url 参数嵌入视频。但即使我这样做,如果我尝试在播放ytPlayer.unMute()视频(使用)后取消静音播放器,视频会再次停止。

关于此 Chrome 72 更新发生了什么变化的任何想法?这是 YouTube/Chrome 错误还是预期行为?

谢谢!

use*_*031 6

“player.play()”在最新版本的 chrome 上不起作用,我们可以通过在父 iframe 中添加 allowed="autoplay" 属性来解决该问题

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