使用自动播放功能来播放使用 HTML5 音频的广播电台

Web*_*man 5 html javascript internet-radio html5-audio

我正在尝试在我的 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>
Run Code Online (Sandbox Code Playgroud)

这种情况如何处理?

任何提示都会很棒,谢谢

Mat*_*att 3

Firefox 错误准确地告诉您发生了什么。自动播放不起作用,因为用户(或更具体地说,浏览器 - 请参阅此处)阻止了它。

在用户通过鼠标单击、可打印按键或触摸事件与页面交互之前发生的任何播放都被视为自动播放,并且如果可能听到的话将被阻止。