HTML5 Audio не зацикливается при загрузке содержимого div с помощью AJAX - PullRequest
0 голосов
/ 24 января 2012

Воспроизведение зацикленного аудио в HTML5 так же просто, как это:

<html>
<head></head>
<body>
    <audio controls autoplay loop>
      <source src="../media/audio/timer.ogg" type="audio/ogg" />
      <source src="../media/audio/timer.mp3" type="audio/mpeg" />
    </audio>
</body>
</html>

Хорошо, это не работает в Firefox, но есть хитрости. Этот пример работает на Safari и Chrome, но это не вопрос. Дело в том, что я загружаю один и тот же код в определенный div с помощью метода load () jQuery: $ ('# mydiv'). Load (url, function () {..});

Когда этот фрагмент HTML-кода загружен, отображается div и аудиофайл правильно прослушивается (автозапуск) ... но он не зацикливается! Хотя он зацикливается на небольшом html-примере, показанном выше, тот же код, поступающий из вызова AJAX, не будет зацикливаться вообще. И я знаю, что это там, в DOM. Я что-то упустил?

1 Ответ

1 голос
/ 24 января 2012

Альтернативный способ - удалить атрибут loop и сбросить атрибут currentTime нового элемента <audio> при возникновении события onended. Простым примером jquery может быть что-то вроде:

/* make ajax call and append audio element */
$('audio').on('ended', function() {
   this.currentTime = 0;
});

таким образом, звук будет перезапускаться автоматически каждый раз, когда он повторяет конец (и это поведение почти такое же, как и в собственном цикле).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...