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

2024-03-29

我需要在我的网站上实现本地自动播放视频。不过,我知道,当视频没有“静音”属性时,较新的浏览器(即 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>

edit

添加一个“hacky”解决方案: 基本上,该策略的含义是用户must在播放音频之前与网站进行交互。

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

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

第二个(还有一个更“hacky”的)是添加一个不可见的iframe with a .mp3 文件 https://olafwempe.com/mp3/silence/silence.mp3(将保持沉默)和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>

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

  app.commandLine.appendSwitch("autoplay-policy", "no-user-gesture-required")

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

自 2018 年 4 月起,除非发生以下情况之一,否则您无法在 chrome 上自动播放声音(如上所示)谷歌的自动播放政策 https://developers.google.com/web/updates/2017/09/autoplay-policy-changes):

  • 始终允许静音自动播放。
  • Autoplay with sound is allowed if:
    • 用户已与域进行交互(单击、点击等)。
    • 在桌面上,用户的媒体参与度指数阈值为 交叉,表示用户之前播放过有声视频。
    • 在移动设备上,用户已将网站添加到他或她的主屏幕。
    • 顶级框架可以将自动播放权限委托给其 iframe,以允许 自动播放有声。

你可以阅读更多相关内容here https://developer.chrome.com/blog/autoplay/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTML5 视频自动播放且声音未静音 的相关文章

随机推荐