Я использую аудио-тег HTML5 для воспроизведения аудиофайлов один за другим, но моя рутина, похоже, приводит к сбою Firefox. Работает только при добавлении оповещения ().
У меня есть подпрограмма на PHP, которая каждые 2 секунды проверяет, отправило ли другое приложение новые события на сервер, и если да, я записываю имя нового события на экране. Некоторые из этих событий имеют связанные с ними аудиофайлы (это могут быть разные звуки), поэтому при наступлении события аудиофайл необходимо воспроизвести.
У меня есть эта процедура:
Когда приходит событие, я вызываю эту функцию: playSound (sound_name);
function playSound(sound_name){
if (!current_sound){
current_sound = true;
$("#audio-player")[0].src = "../snd/"+sound_name;
//$("#audio-player")[0].load();
$("#audio-player")[0].play();
}
else {
//alert(sound_name);
playSound(sound_name);
}
}
Переменная «current_sound» устанавливается в «false», когда audio_player запускает событие «закончилась» аудиотега. Я привязал функцию к этому событию, поэтому каждый раз, когда она срабатывает, она устанавливает переменную current_sound в false.
Проблема всего этого кода в том, что он работает только с этим предупреждением внутри функции playSound (). Если я прокомментирую это, Firefox вылетает и начинает говорить, что выполнение js-скрипта занимает слишком много времени (один из их js-скриптов, а не мой).
Я много искал, но нашел только примеры того, как воспроизвести данный список файлов, который в моем случае бесполезен, потому что я не знаю, какие файлы будут воспроизводиться заранее.
Есть предложения?