причуды с использованием аудио()

#javascript #audio

Вопрос:

Во-первых, позвольте мне признать, что я новичок в javascript… Я провел свою карьеру на C и C , в основном в области встроенных приложений.

Поэтому я пытаюсь исправить некоторые проблемы со старой программой html/javascript под названием Balldropps. Он извлекал свои звуковые файлы из swf-файла, используя fm .PlaySound() для их воспроизведения, и он зависал в большинстве браузеров, как только звук был включен.

Поэтому я извлек звуковые файлы в отдельные файлы .mp3 и использую Audio() для их воспроизведения:

 // fm.playSound(Math.round(vel));//call flash function
var str = "sounds/sound_"   ("00"   vel).substr(-2,2)   ".mp3" ;
// console.log(str)
// sounds/sound_07.mp3
var hdlAudio = new Audio(str);
hdlAudio.play();
 

Поначалу это работает… однако природа программы такова, что по мере усложнения отображения активируется все больше и больше шариков (и, следовательно, звуков).

Я нахожу, что в некоторых браузерах (Firefox и Pale Moon), как только определенное количество звуков активировано, система, похоже, запутывается, и программа теряет контроль над звуками — это означает, что, помимо прочего, звук нельзя отключить, и не все звуки, которые должны воспроизводиться, воспроизводятся… Интересно, что эта проблема не возникает с MS Edge; У меня было до 26 шаров в полете, и все звуки работают, и их можно отключить/включить. Он также работает с хромом, до 22 шариков.

Кто-нибудь имеет хоть малейшее представление, что здесь не так??

Примечание: весь проект доступен для клонирования здесь: https://github.com/DerellLicht/BallDroppings

Если вы просто хотите увидеть, как он работает: http://www.derelllicht.com/BallDroppings.htm

нарисуйте линии, чтобы блокировать поток и отскакивать от мяча, нажмите «Параметры» , а затем «Звуки», чтобы включить звуки.