【问题标题】:Determine if Chrome has blocked HTML5 video autoplay?确定 Chrome 是否阻止了 HTML5 视频自动播放?
【发布时间】: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


【解决方案1】:

首先在移动端,自动播放被完全屏蔽了。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-01
    • 2016-02-25
    • 1970-01-01
    • 2019-01-06
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多