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

问题描述 投票:2回答:2

自Chrome更新到版本72后,我在YouTube Iframe API上运行的自定义播放器停止运行。它仍可在Firefox或Chrome <= 71上完美运行。

使用下面的代码,当触发功能播放()时,视频开始缓冲然后停止,而不播放。

function onYouTubeIframeAPIReady() {
  ytIframe = $("#player")[0];
  ytPlayer = new YT.Player(ytIframe, {
    events: {
      'onReady': () => {},
      'onStateChange': () => {}
    }
  });
}

function play() {
  ytPlayer.playVideo();
}

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

有关此Chrome 72更新的更改内容的任何想法?这是YouTube / Chrome错误还是预期的行为?

谢谢!

javascript google-chrome youtube embed youtube-javascript-api
2个回答
2
投票

“player.play()”无法在最新版Chrome上运行,我们可以通过将allow =“autoplay”属性添加到您的父iframe来解决此问题

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


0
投票

您描述了新的Chrome行为。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.