Я создал приложение, предназначенное для воспроизведения каждого звука по мере завершения первого с помощью события 'end'.
В моей первоначальной версии каждый звук имеет свой собственный элемент audio, что приводит к чему-то вроде:
function play_next_audio(){
speaker = $('audio#' + sounds[i++]).get(0);
speaker.addEventListener('ended',play_next_audio);
speaker.play();
}
Это прекрасно работает во всех настольных браузерах, включая Safari, но не выходит за пределы самой первой буквы в iOS.
Я также пробовал другой подход — одиночный аудиоэлемент, загружающий каждый звук по очереди. Там я экспериментировал с привязкой события «завершение», а также с загрузкой первого и привязкой события «canplaythrough». В обоих случаях не работает даже на десктопном Safari — на этот раз удачно воспроизводятся первые две буквы.
Вот изолированный тест:
http://dev.connectfu.com:42001/app/test-sounds.html
Обратите внимание, что audio.load() закомментирован в нескольких местах – если или вне, кажется, не имеет значения.
Что я делаю не так? Как я могу воспроизвести серию звуков на iOS? Большое спасибо за помощь!