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

Posted

技术标签:

【中文标题】视频取消静音时无法通过 iframe API 播放 YouTube 视频【英文标题】:Can't play YouTube video through iframe API when video is unmute 【发布时间】:2019-07-12 05:48:01 【问题描述】:

自从 Chrome 更新到版本 72 后,我通过 YouTube Iframe API 运行的自定义播放器停止工作。它仍然可以在 Firefox 或 Chrome

使用下面的代码,当函数 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 的错误还是预期的行为?

谢谢!

【问题讨论】:

如果我没记错的话,chrome 不喜欢 iframe,自从我使用它们以来已经有一段时间了,但据我所知,在快速谷歌搜索后有一个 chrome 插件允许你来启用它。 【参考方案1】:

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

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

【讨论】:

更多信息,iframe 及其属性,features list 可以与allow 属性一起使用。【参考方案2】:

您描述了新的 Chrome 行为。

您现在必须手动点击 iframe - 开始播放或取消静音。

要使用“自动播放”,您还必须使用“静音”。确保不要禁用“控件”,因为用户必须单击扬声器符号才能启用声音。

【讨论】:

以上是关于视频取消静音时无法通过 iframe API 播放 YouTube 视频的主要内容,如果未能解决你的问题,请参考以下文章

一次静音播放多个YouTube视频

如何自动播放静音的 Youtube 视频 (IFrame API)?

无法在移动设备上使用 Revolution Slider 取消 YouTube 视频静音

AVAudioPlayer 在播放视频时无法识别设备静音按钮

强制取消静音 HTML5 视频自动播放

在视频列表中静音/取消静音的最佳方法是啥