如何在任何浏览器中自动播放音频?

我正在创建一个网站,我需要该网站在页面加载时自动播放背景声音。

然而,在我的研究中,我发现谷歌改变了自动播放策略,以避免广告。其结果是,任何带有声音和自动播放道具的设备都停止工作。

我尝试了很多人们在网上提出的建议,我会在这篇帖子的末尾列出几个。

所以,我设法找到this website here。程序员建议将IFRAME与1秒的mp3文件一起使用,并且在音频标记之前没有声音。它在他的网站上运行得很好!

所以,我的问题是..。我正在使用他使用的相同的1秒mp3文件。我使用的是他使用的相同的html结构(只是更改了我的文件路径和id名称)。而且对我不起作用。

<iframe src="path/silence.mp3" type="audio/mp3" allow="autoplay" id="audio" style="display:none"></iframe> 
<audio id="bgsound" autoplay loop>
    <source src="path/natureza.mp3" type="audio/mp3">
</audio>

有人能帮我找出相同的代码结构如何在他的网站上工作,而在我的网站上不工作吗?我在Stack Overflow中找到的所有与此问题相关的主题都没有明确的解决方案,所以我想,也许有一个网站可以让这种功能发挥作用,有人可以帮助我挖掘这个案例。


我以前已经尝试过,但没有成功:

  • 将已静音的道具与自动播放一起使用,并在JavaScript超时的情况下,在几秒钟后将FALSE值赋予已静音的道具。
  • 加载页面时,不要使用自动播放道具并激活play()方法。

解决方案

几周前,我完全按照您的计划进行了尝试,然而,经过大量研究后,我意识到现在几乎不可能做到这一点。例如,在Chrome中(我不知道在其他浏览器中是否也是如此),您无法自动播放声音/视频,除非满足以下其中一点:

  • 用户与您的网站交互(单击您网站的任何部分)。
  • 用户已将您的网站添加到主屏幕(手机)。
  • 用户已超过媒体交互指数(MEI)阈值。
  • 您的网站在Google自动播放白名单中(如YouTube)。

在我的案例中,我使用了一个Cookie策略按钮来强制用户与我的网站交互并触发声音播放。

您可以在此处查看更多信息和示例:https://developers.google.com/web/updates/2017/09/autoplay-policy-changes

相关文章