【发布时间】:2016-02-05 12:43:46
【问题描述】:
从 Chrome 46 开始,新的背景标签将不再自动播放音频或视频。应用程序如何判断其自动播放是否已被阻止?
一些想法:
- 适用于 Chrome 46+ 的 UA 嗅探
- 使用 Visibility API 检查选项卡是否可见
- 使用 History API 检查新标签页
- 检查视频是否正在播放
像这样的 hacky 可能会起作用,但我真的很想知道是否有更好的方法:
function isAutoplayBlocked() {
return isChrome46 && isNewTab && isHiddenTab;
}
【问题讨论】:
-
它是“新标签”并不是阻止视频自动播放的必要条件。例如,转到 youtube,单击一个视频,然后在页面加载之前转到另一个选项卡。视频不会播放。
-
根据提交:“一旦选项卡/RenderFrame 曾经播放过媒体,就可以无限期地继续自动播放/自动加载”。因此,当标签尚未播放媒体时,您的方案仅是真的。但你是对的,我有一个错误的假设。
标签: javascript html google-chrome html5-video