使用HTML5音频播放器自动播放广播电台

5
我正在尝试在我的HTML文件中自动启动网络电台。当前使用的autoplay无法启动,我认为是因为电台缺少加载数据的时间,因此autoplay被阻止了。我创建了一个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>

如何处理这种情况?

有任何提示都将是极好的,谢谢。


2
自动播放功能正在逐渐从大多数主流浏览器中淘汰。 - Phix
这是React还是Handlebars还是...? <button onclick={goPlay()}> - zer00ne
2个回答

3
火狐浏览器错误提示了出现的问题。自动播放无法正常工作是因为用户(或者更具体地说,浏览器 - 参见这里)正在阻止自动播放。

如果在用户通过鼠标点击、按下可打印按键或触摸事件与页面交互之前发生任何播放,则被视为自动播放,如果可能发出声音,则会被阻止。


1
在我的情况下,当我尝试在浏览器控制台执行document.getElementsByTagName("video")[0].play()时,在你提到的错误消息上面,有一个警告只有经过用户批准、用户启用站点或媒体静音时,自动播放才被允许。 我通过先将视频静音或在Firefox中为网站权限选择“允许音频和视频”来执行代码。

是的,目前一些浏览器限制自动播放功能以保护用户的宁静,这可能会导致出现错误。 - Webwoman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接