如何在任何浏览器中自动播放音频?
我正在创建一个网站,我需要该网站在页面加载时自动播放背景声音。
然而,在我的研究中,我发现谷歌改变了自动播放策略,以避免广告。其结果是,任何带有声音和自动播放道具的设备都停止工作。我尝试了很多人们在网上提出的建议,我会在这篇帖子的末尾列出几个。
所以,我设法找到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
相关文章