我正在尝试在html文件上自动启动网络广播。当前使用自动播放失败,我认为收音机错过了加载某些数据的时间,因此自动播放只是阻塞了。 我创建了一个setTimeout函数来处理。现在,该功能拒绝在Firefox和Opera上启动。 Firefox的错误日志提供的信息最多,复制如下:
NotAllowedError:用户代理或 当前上下文中的平台,可能是因为用户拒绝了 权限
这是我的html代码段:
<body>
<audio controls src="http://5.63.151.52:7136/stream?icy=http" autoplay id="myAudio">
Your browser does not support the
<code>audio</code> element.
</audio>
<button onclick={goPlay()}>
Play
</button>
<script>
// function goPlay(){
// console.log("in goplay")
setTimeout(() => {
var x = document.getElementById("myAudio");
// function playAudio() {
x.play();
},
1000
)
// }
</script>
</body>
如何处理这种情况?
任何提示都会很棒, 谢谢
答案 0 :(得分:2)
Firefox错误告诉您正在发生的事情。由于用户(或更具体地说,浏览器-参见here)阻止了自动播放,因此无法正常播放。
在用户与页面互动之前发生的任何播放 通过鼠标单击,可打印的按键或触摸事件被认为是 会自动播放,如果可能会听到声音,则会被阻止。
答案 1 :(得分:1)
就我而言,当我尝试在浏览器控制台中执行document.getElementsByTagName("video")[0].play()
时,在您提到的错误消息上方,有一个警告Autoplay is only allowed when approved by the user, the site is activated by the user, or media is muted.
。我可以通过先使视频静音或在Firefox中为网站权限选择“允许音频和视频”来执行代码。