Quirks with Audio() on Firefox

First off, let me admit that I’m a newbie at javascript… I spent my career on C and C++, mostly in the embedded realm.

So I’m trying to fix some problems with an old html/javascript program called BallDroppings. It was extracting its sound files from a .swf file, using fm.playSound() to play them, and it would hang in most browsers as soon as sound was enabled.

So I extracted the sound files into separate .mp3 files, and am using Audio() to play them:

// 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();

This is working, initially… however, the nature of the program is that more and more balls (and therefore, sounds) are active as the display becomes more complex.

What I’m finding is that, with certain browsers (Firefox and Pale Moon), once a certain number of sounds are active, the system appears to get confused, and the program loses control of the sounds - meaning that, among other things, sound cannot be turned off, and not all sounds that should be playing, are playing… Interestingly, this issue does not occur with MS Edge; I’ve had up to 26 balls in flight, and all sounds are working, and can be turned off/on. It also works with Chrome, up to 22 balls.

Does anyone have any idea what is wrong here??

Note: the entire project is available for cloning here: GitHub - DerellLicht/BallDroppings: port of ancient BallDroppings app, without dependence upon swf file for sounds

If you just want to see it running: BallDroppings

draw lines to block the stream and bounce the ball around, click ‘Options’ and then ‘Sounds’ to turn sounds on.

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.