howler.js
howler.js copied to clipboard
Android 4.4.4, Chrome 33.0.0, RangeError: Maximum call stack size exceeded
my code:
const bgm = new Howl({
src: require('./assets/gg.mp3'),
loop: true
});
bgm.play();
the Readme said that it can be compatible with following browsers:
Browser Compatibility Tested in the following browsers/versions: Google Chrome 7.0+ Internet Explorer 9.0+ Firefox 4.0+ Safari 5.1.4+ Mobile Safari 6.0+ (after user input) Opera 12.0+ Microsoft Edge
But I receive this error on Android 4.4.4 device with Chrome 33.0.0
RangeError: Maximum call stack size exceeded
at Object.a._loadQueue(/apg-great-china-four-h5/static/js/2.24fe0520.chunk.js)
at _emit(../node_modules/howler/dist/howler.js:1867:1)
at _ended(../node_modules/howler/dist/howler.js:1918:1)
at play(../node_modules/howler/dist/howler.js:809:1)
at _ended(../node_modules/howler/dist/howler.js:1922:1)
at play(../node_modules/howler/dist/howler.js:809:1)
at _ended(../node_modules/howler/dist/howler.js:1922:1)
at play(../node_modules/howler/dist/howler.js:809:1)
at _ended(../node_modules/howler/dist/howler.js:1922:1)
at play(../node_modules/howler/dist/howler.js:809:1)
at _ended(../node_modules/howler/dist/howler.js:1922:1)
at play(../node_modules/howler/dist/howler.js:809:1)
at _ended(../node_modules/howler/dist/howler.js:1922:1)
at play(../node_modules/howler/dist/howler.js:809:1)
at _ended(../node_modules/howler/dist/howler.js:1922:1)
at play(../node_modules/howler/dist/howler.js:809:1)
at _ended(../node_modules/howler/dist/howler.js:1922:1)
at play(../node_modules/howler/dist/howler.js:809:1)
at _ended(../node_modules/howler/dist/howler.js:1922:1)
at play(../node_modules/howler/dist/howler.js:809:1)
at _ended(../node_modules/howler/dist/howler.js:1922:1)
at play(../node_modules/howler/dist/howler.js:809:1)
at _ended(../node_modules/howler/dist/howler.js:1922:1)
at play(../node_modules/howler/dist/howler.js:809:1)
at _ended(../node_modules/howler/dist/howler.js:1922:1)
at play(../node_modules/howler/dist/howler.js:809:1)
at _ended(../node_modules/howler/dist/howler.js:1922:1)
at play(../node_modules/howler/dist/howler.js:809:1)
at _ended(../node_modules/howler/dist/howler.js:1922:1)
at play(../node_modules/howler/dist/howler.js:809:1)
at _ended(../node_modules/howler/dist/howler.js:1922:1)
at play(../node_modules/howler/dist/howler.js:809:1)
at _ended(../node_modules/howler/dist/howler.js:1922:1)
at play(../node_modules/howler/dist/howler.js:809:1)
at _ended(../node_modules/howler/dist/howler.js:1922:1)
at play(../node_modules/howler/dist/howler.js:809:1)
at _ended(../node_modules/howler/dist/howler.js:1922:1)
at play(../node_modules/howler/dist/howler.js:809:1)
at _ended(../node_modules/howler/dist/howler.js:1922:1)
at play(../node_modules/howler/dist/howler.js:809:1)
at _ended(../node_modules/howler/dist/howler.js:1922:1)
at play(../node_modules/howler/dist/howler.js:809:1)
at _ended(../node_modules/howler/dist/howler.js:1922:1)
at play(../node_modules/howler/dist/howler.js:809:1)
at _ended(../node_modules/howler/dist/howler.js:1922:1)
at play(../node_modules/howler/dist/howler.js:809:1)
at _ended(../node_modules/howler/dist/howler.js:1922:1)
at play(../node_modules/howler/dist/howler.js:809:1)
at _ended(../node_modules/howler/dist/howler.js:1922:1)
at Object.a.play(../node_modules/howler/dist/howler.js:809:1)
sentry screenshot

I also have this issue. To reproduce: try to play without first "unlocking" the browser, and then wait for a good bit of time, then click the browser to unlock it and begin playing.
It seems like the library is using some recursion thing to re-attempt playing to compensate for the unlock event which is overflowing.
This seems pretty high priority. It reproduces on any devices I've found that uses chrome, iOS, android, windows, mac.
If you try to play a sound upon website load, and the user doesn't interact with your website for ~15 seconds, they're guaranteed to crash due to this bug.
I've also seen this happen several times.
currently, my workaround is to wait till user click on my game html-element
Same here.
This happens to our users on a daily basis. About 10 reports a day with various browsers including latest Chrome.
is there any solution/ workaround for this issue? Or possibly what cause it?