#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
нарисуйте линии, чтобы блокировать поток и отскакивать от мяча, нажмите «Параметры» , а затем «Звуки», чтобы включить звуки.