如何解决音频不总是自动播放的问题

时间:2019-03-17 01:58:41

标签: javascript jquery html ajax

有时自动播放无法正常工作。这设置为自动播放歌曲并刷新页面以获取下一首歌曲,因为我不知道如何获取它来再次调用我的php并获取新歌曲。当您单击播放时,它始终有效。它只是不喜欢它并不能自动播放。

为什么有时自动播放不起作用?

The error from console when autoplay doesn't work:

Uncaught (in promise) DOMException line 26:
        25  $('audio').get(0).load();
        26  $('audio').get(0).play();
        27  document.getElementById("songName").innerHTML = 

'http://192.168.1.180'+数据;

页面加载中始终出现的错误:

Uncaught ReferenceError: url is not defined
    at radio.html:15
            14  <br />
            15  <script>document.write(url);</script>
            16  <button onclick="skip()">Skip me</button>

通过ajax进行输入的示例:

http://192.168.180/uploads/Music/Ive_Gone_Away_Black_Label_Society_Catacombs_of_the_Black_Vatican_2014.mp3

 <html>
    <head></head>
    <body>
      <center>
        <?php echo $data ?>
        <audio id="playMusic" controls autoplay>
          <source id="source" src="" type="audio/mp3">
          Your browser does not support the audio element.
        </audio>
        <br />
        <button onclick="skip()">Skip me</button>
        <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
        <script type="text/javascript">
          $.ajax({
            url: 'radio.php',
            data: { attr1: 'value1' },
            success: function (data) {
              console.log(data);
              $('audio #source').attr('src', data);
              $('audio').get(0).load();
              $('audio').get(0).play();
            }
          });
          playMusic.onended = function () {
            window.location.reload();
          };
          function skip() {
            window.location.reload();
          }
        </script>
      </center>
    </body>
    </html>

2 个答案:

答案 0 :(得分:0)

尝试将Task.Run属性添加到autoplay="autoplay"标记中。

audio

答案 1 :(得分:0)

  

❌未捕获(承诺)的DOMException:play()失败,因为用户没有首先与文档进行交互。 https://goo.gl/xX8pDD

答案是,它工作正常。它只是被Chrome本身阻止了。