Javascript 确定Chrome是否阻止了HTML5视频自动播放?

Javascript 确定Chrome是否阻止了HTML5视频自动播放?,javascript,html,google-chrome,html5-video,Javascript,Html,Google Chrome,Html5 Video,从Chrome 46开始,新的背景标签将不再自动播放音频或视频。应用程序如何判断其自动播放是否已被阻止 一些想法: UA嗅探铬46+ 使用可见性API检查选项卡是否可见 检查是否使用历史API创建新选项卡 检查视频是否正在播放 像这样的黑客行为可能会奏效,但我真的很想知道是否有更好的方法: function isAutoplayBlocked() { return isChrome46 && isNewTab && isHiddenTab; } 首先,在

从Chrome 46开始,新的背景标签将不再自动播放音频或视频。应用程序如何判断其自动播放是否已被阻止

一些想法:

  • UA嗅探铬46+
  • 使用可见性API检查选项卡是否可见
  • 检查是否使用历史API创建新选项卡
  • 检查视频是否正在播放
像这样的黑客行为可能会奏效,但我真的很想知道是否有更好的方法:

function isAutoplayBlocked() {
  return isChrome46 && isNewTab && isHiddenTab;
}

首先,在移动设备上,自动播放被完全阻止

查看视频是否被阻止的最佳方法是查找指示元素已开始播放的媒体事件,例如
ontimeupdate
,并且元素已附加自动播放属性。如果没有更新,也没有用户交互,则可以假定自动播放已暂停。

视频自动播放不需要阻止“新建选项卡”。例如,转到youtube,单击视频,然后在加载页面之前转到另一个选项卡。视频将不会播放。根据提交:“一旦选项卡/渲染帧以前播放过媒体,就可以无限期地继续自动播放/自动加载”。因此,只有当选项卡尚未播放媒体时,您的场景才是真实的。但你是对的,我有一个错误的假设。