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/