meenie / band.js

Band.js - Music composer interface for the Web Audio API.
Other
1.18k stars 93 forks source link

Close old AudioContexts #29

Closed Costava closed 8 years ago

Costava commented 8 years ago

"The close() method of the AudioContext Interface closes the audio context, releasing any system audio resources that it uses [...] it will forcibly release any system audio resources that might prevent additional AudioContexts from being created and used"

from https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/close

The destroy method of the Conductor class instantiates new AudioContexts but does not close the old ones. Firefox either closes the AudioContexts for you, or otherwise deals with the situation, but Chrome will give an error if enough AudioContexts are instantiated without being closed:

band.js:191 Uncaught NotSupportedError: Failed to construct 'AudioContext': The number of hardware contexts provided (6) is greater than or equal to the maximum bound (6).

This error is reproducible by calling the destroy method enough (~5 times. destroy is called when loading from JSON).

Google Chrome Version 51.0.2704.103

meenie commented 8 years ago

Awesome, thanks!