Как исправить звук не всегда в автоматическом режиме - PullRequest
1 голос
/ 17 марта 2019

Иногда автозапуск не работает.Это настроено на автоматическое воспроизведение песни и обновление страницы, чтобы получить следующую песню, потому что я не мог понять, как заставить ее снова вызвать мой 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' + data;

Ошибка, которая всегда появляется при загрузке страницы:

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 голосов
/ 17 марта 2019

❌ Uncaught (в обещании) DOMException: play () не удалось, потому что пользователь не взаимодействовал с документом в первую очередь. https: & # x2f; /goo.gl/xX8pDD

Ответ: все работало нормально. Он просто заблокирован самим хромом.

0 голосов
/ 17 марта 2019

Попробуйте добавить атрибут autoplay="autoplay" в тег audio.

<audio id="playMusic" autoplay="autoplay" controls="controls">     
<source src="music.mp3" />   
</audio> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...