Safari для настольной версии Mac: «законченное» событие HTML 5 не вызывает проблемы - PullRequest
8 голосов
/ 17 августа 2011

Я просто хочу последовательно воспроизвести несколько аудиофайлов, используя функцию HTML5 Audio.В конце каждой игры запускается событие «закончилась» для загрузки следующего аудио.Но в Safari 5.1 для настольных компьютеров (на Mac), я обнаружил, что событие «закончилась» только в конце первой игры.После загрузки и воспроизведения второго аудио событие «закончившееся» не сработало снова, даже когда воспроизведение звука закончилось (я отслеживал это по событию «timeupdate»).Даже когда я вручную воспроизводил любые другие аудиофайлы, событие «закончилась» снова не сработало.Но в Chrome и мобильных сафари этой проблемы, по-видимому, не существует, и аудиоплеер может непрерывно воспроизводить от первого аудио до последнего аудио.Это ошибка Safari 5.1 для Mac OS X?(Я не проверял его в Windows)

В настоящее время я могу использовать только событие timeupdate, чтобы проверить, закончилось ли воспроизведение.

1 Ответ

1 голос
/ 14 февраля 2012

Да, это досадная ошибка.Вы можете обойти это, изменив идентификатор аудио элемента для каждого файла.Вот пример кода, чтобы понять:

<div id="audioDiv">
 <audio id="audio0" src="">
  <h1>Your browser does not support the audio tag.</h1>
 </audio>
</div>

<script>
var audioCounter = 0;

function next() {
 audioCounter++;
 document.getElementById('audioDiv').innerHTML = '<audio id="audio' + audioCounter + '" src="file.mp3"></audio>';
 document.getElementById('audio' + audioCounter).addEventListener('ended', next, false);
 document.getElementById('audio' + audioCounter).play();
 }

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