我正在寻找自动播放循环中的音频而不会被浏览器阻止。
代码:
<audio id="audio1" src="assest/sound/1.mp3" autoplay="" />
<script>
a = document.getElementById('audio1');
a.onended = function(){setTimeout("a.play()", 1000)}
</script>
我目前的代码在firefox上工作,但默认情况下它被阻止了,我必须手动允许自动播放,这样它才能播放音频,而在chrome的另一边,音频甚至没有播放。
编辑:
Iframe代码:
<iframe src="assest/sound/1.mp3" allow="autoplay" style="display:none" id="iframeAudio">
</iframe>
我甚至尝试过iframe自动播放代码,但它仍然不适用于chrome。iframe代码自动触发音频文件的自动下载。
有什么解决方案吗?
使用HTML
<audio controls autoplay loop hidden>
<source src="assest/sound/1.mp3" type="audio/mpeg">
</audio>
请查看此文档,了解您面临的问题:https://developer.mozilla.org/en-US/docs/Web/Media/Autoplay_guide.
如文件所述:
作为一般规则,您可以假设只有当以下至少一项为真时,媒体才会被允许自动播放:
- 音频静音或音量设置为0
- 用户已经与网站进行了交互(通过点击、敲击、按键等(
- 如果该站点已被允许列出;如果浏览器确定用户频繁接触媒体,这种情况可能会自动发生,也可能通过偏好设置或其他用户界面功能手动发生
- 如果自动播放功能策略用于向及其文档授予自动播放支持
我认为一个合理的方法是让用户首先与您的网站进行交互。例如:
- 显示一个页面内弹出窗口,用户点击关闭它
- 询问用户是否想听音乐
在他们与您的网站交互后,您可以运行脚本播放音频,而无需浏览器阻止。