Я играл с аудио 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), оба из которых кажутся счастливыми проигнорировать мои запросы на цикличное выполнение. Какие-либо идеи?
ОБНОВЛЕНИЕ: свойство цикла теперь поддерживается во всех главных браузерах.
Хотя loop
указан, он не реализован ни в одном известном мне браузере Firefox [спасибо Anurag за указание на это]. Вот альтернативный способ зацикливания, который должен работать в браузерах, поддерживающих HTML5:
myAudio = new Audio('someSound.ogg');
myAudio.addEventListener('ended', function() {
this.currentTime = 0;
this.play();
}, false);
myAudio.play();
Ваш код работает у меня в Chrome (5.0.375) и Safari (5.0). Не зацикливается на Firefox (3.6).
var song = new Audio("file");
song.loop = true;
document.body.appendChild(song);