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

标签 javascript google-chrome youtube embed 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();
}

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

关于这次 Chrome 72 更新有什么变化?这是 YouTube/Chrome 错误还是预期行为?

谢谢!

最佳答案

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

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

关于javascript - 视频取消静音时无法通过 iframe API 播放 YouTube 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54754132/

相关文章:

javascript - Tablesorter 2.0 插件和带有嵌套 HTML 的表格

javascript - Chrome 扩展程序 : detecting keypresses in Google Docs

reactjs - 如果用户的浏览器不受支持,我可以呈现警告消息吗?

javascript - 为什么这个 jquery 扩展不起作用?

javascript - nodejs MySQL 与 SQLite 故障转移的连接

javascript - hasChildNodes is not a function 小老鼠编辑器js错误

google-chrome - 如何在 headless (headless)模式下调试 puppeteer

python - 使用批处理文件在Python中嵌入Youtube-DL

video - 如何使用python youtube-dl和meteorjs执行客户端视频下载

java - 如何使用Java在YouTube数据API v3中设置nextPageToken?