Цикличное выполнение аудио HTML5

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

Вот абсолютный код, который я использую:

//myAudio is declared at a global scope, so it doesn't get garbage collected.
myAudio = new Audio('someSound.ogg');
myAudio.loop = true;
myAudio.play();

Я тестирую использование Chrome (6.0.466.0 dev) и Firefox (4 беты 1), оба из которых кажутся счастливыми проигнорировать мои запросы на цикличное выполнение. Какие-либо идеи?

ОБНОВЛЕНИЕ: свойство цикла теперь поддерживается во всех главных браузерах.

74
задан Damjan Pavlica 18 April 2016 в 23:06
поделиться

2 ответа

Хотя loop указан, он не реализован ни в одном известном мне браузере Firefox [спасибо Anurag за указание на это]. Вот альтернативный способ зацикливания, который должен работать в браузерах, поддерживающих HTML5:

myAudio = new Audio('someSound.ogg'); 
myAudio.addEventListener('ended', function() {
    this.currentTime = 0;
    this.play();
}, false);
myAudio.play();
109
ответ дан 24 November 2019 в 11:51
поделиться

Ваш код работает у меня в Chrome (5.0.375) и Safari (5.0). Не зацикливается на Firefox (3.6).

См. Пример.

var song = new Audio("file");
song.loop = true;
document.body.appendChild(song);​
18
ответ дан 24 November 2019 в 11:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: