HTML5 视频自动播放且声音未静音

Kak*_*aka 8 html javascript browser video autoplay

我需要在我的网站上实现本地自动播放视频。不过,我知道,当视频没有“静音”属性时,较新的浏览器(即 Chrome、Mozilla 和 Safari)会阻止自动播放。那么,有没有办法通过 HTML 或 Javascript 中的任何技巧来自动播放 HTML5 中未静音(带声音)的视频?因为,当我删除“静音”属性时,视频将停止由浏览器自动播放。

这是我使用的简单 HTML5 代码:

<body>
<div class="video-wrapper">
<video autoplay muted loop playsinline preload="metadata">
  <source src="EDMVideo(Jay)_NEW.webm">
</video>
</div>
</body>
Run Code Online (Sandbox Code Playgroud)

Guy*_*hon 4

编辑

添加“hacky”解决方案:基本上,该策略的含义是用户必须与网站交互才能播放音频。

有了这个假设,我们可以通过两种方式自动播放有声视频:

第一个,也是对用户来说最公平的一个,是创建一个登陆页面,在该页面中,他必须与您的网站进行交互才能开始使用它,或者单击允许您播放声音的内容。

第二个(也是更“hacky”的一个)是添加一个不可见的.mp3 文件iframe(将是无声的)和. 这将欺骗浏览器自动播放任何后续视频,即使它未静音。allow autoplay

它看起来像这样:

<iframe src="https://olafwempe.com/mp3/silence/silence.mp3" type="audio/mp3" allow="autoplay" id="audio" style="display:none"></iframe>
<video autoplay muted loop playsinline preload="metadata">
  <source src="EDMVideo(Jay)_NEW.webm">
</video>
Run Code Online (Sandbox Code Playgroud)

对于 Electron - 您需要绕过自动播放策略:

  app.commandLine.appendSwitch("autoplay-policy", "no-user-gesture-required")
Run Code Online (Sandbox Code Playgroud)

不幸的是,对此没有真正的解决方案。它的目的是保护用户,并且没有解决方法。有些浏览器可以自动播放声音。但对于大多数人来说这是行不通的,但这很好!

自 2018 年 4 月起,除非发生以下情况之一,否则您无法在 chrome 上自动播放声音(如Google 的自动播放政策所示):

  • 始终允许静音自动播放。
  • 在以下情况下允许自动播放声音:
    • 用户已与域进行交互(单击、点击等)。
    • 在桌面上,用户的媒体参与度指数阈值已被突破,这意味着用户之前播放过有声视频。
    • 在移动设备上,用户已将网站添加到他或她的主屏幕。
    • 顶部框架可以将自动播放权限委托给其 iframe,以允许自动播放声音。

你可以在这里读更多关于它的内容