自动播放循环中的音频



我正在寻找自动播放循环中的音频而不会被浏览器阻止。

代码:

<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
  • 用户已经与网站进行了交互(通过点击、敲击、按键等(
  • 如果该站点已被允许列出;如果浏览器确定用户频繁接触媒体,这种情况可能会自动发生,也可能通过偏好设置或其他用户界面功能手动发生
  • 如果自动播放功能策略用于向及其文档授予自动播放支持

我认为一个合理的方法是让用户首先与您的网站进行交互。例如:

  • 显示一个页面内弹出窗口,用户点击关闭它
  • 询问用户是否想听音乐

在他们与您的网站交互后,您可以运行脚本播放音频,而无需浏览器阻止。

最新更新