视频取消静音后无法通过 iframe API 播放 YouTube 视频
Can't play YouTube video through iframe API when video is unmute
自从 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();
}
让它工作的唯一方法是使用 mute=1
url 参数在 iframe src 上嵌入视频。但即使我这样做,如果我尝试在播放视频后取消播放器静音(使用 ytPlayer.unMute()
),视频会再次停止。
关于此 Chrome 72 更新有何变化?这是 YouTube/Chrome 错误还是预期行为?
谢谢!
"player.play()" 不适用于最新版本 chrome,我们可以通过将 allow="autoplay" 属性添加到您的父 iframe
来解决此问题
要知道根本原因,可以查看:"What's changing?"@https://developers.google.com/web/updates/2019/01/user-activation
您描述了新的 Chrome 行为。
您现在必须手动单击进入 iframe - 才能开始播放或取消静音。
要使用 "autoplay,",您还必须使用 "mute"。确保不要禁用 "controls,",因为用户必须单击扬声器符号才能启用声音。
自从 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();
}
让它工作的唯一方法是使用 mute=1
url 参数在 iframe src 上嵌入视频。但即使我这样做,如果我尝试在播放视频后取消播放器静音(使用 ytPlayer.unMute()
),视频会再次停止。
关于此 Chrome 72 更新有何变化?这是 YouTube/Chrome 错误还是预期行为?
谢谢!
"player.play()" 不适用于最新版本 chrome,我们可以通过将 allow="autoplay" 属性添加到您的父 iframe
来解决此问题要知道根本原因,可以查看:"What's changing?"@https://developers.google.com/web/updates/2019/01/user-activation
您描述了新的 Chrome 行为。
您现在必须手动单击进入 iframe - 才能开始播放或取消静音。
要使用 "autoplay,",您还必须使用 "mute"。确保不要禁用 "controls,",因为用户必须单击扬声器符号才能启用声音。