For instance, this tease: Simple Edging (preview is on, you can skip to page cEdging-1) has no metronome sound in Firefox, whereas it works just fine in Chrome.
Basically, what happens is:
- The browser loads Howler.js, the library used by EOS to play audio.
- Whenever the EOS script specifies audio must be played, Howler.js sets up playback as needed, using the Web Audio API.
- It then asks the browser to retrieve one or more MP3s from media.milovana.com.
- Once the MP3 file is downloaded, it's fed to the browser's decodeAudioData function.
- Decoding fails with DOMException: The buffer passed to decodeAudioData contains an unknown content type.
Code: Select all
<br />
<b>Deprecated</b>: Creation of dynamic property Wav2Mp3::$stereo is deprecated in <b>/usr/local/var/www/download.php</b> on line <b>34</b><br />A workaround is to use the following uBlock Origin custom filter:
Code: Select all
eosscript.com#%#//scriptlet('set-constant', 'Howler.usingWebAudio', 'false')Server-side, I have identified multiple ways of solving this:
- Actually fixing the issue by removing the use of dynamic properties in this PHP class, and regenerating all affected audio files. This will make the warning go away and Firefox will be happy again. (I would also suggest turning off PHP error reporting.)
- Modifying calls to Howler.js to use the HTML5 backend, rather than the Web Audio API. This workaround could also potentially improve audio start delay.
i.


