abcjs / src /synth /register-audio-context.js
KEXEL's picture
Upload 337 files
af6912c verified
// Call this when it is safe for the abcjs to produce sound. This is after the first user gesture on the page.
// If you call it with no parameters, then an AudioContext is created and stored.
// If you call it with a parameter, that is used as an already created AudioContext.
function registerAudioContext(ac) {
// If one is passed in, that is the one to use even if there was already one created.
if (ac)
window.abcjsAudioContext = ac;
else {
// no audio context passed in, so create it unless there is already one from before.
if (!window.abcjsAudioContext) {
var AudioContext = window.AudioContext || window.webkitAudioContext;
if (AudioContext)
window.abcjsAudioContext = new AudioContext();
else
return false;
}
}
return window.abcjsAudioContext.state !== "suspended";
}
module.exports = registerAudioContext;