audio: clear buffers when stopping in case browser keeps playing anyway

This commit is contained in:
Steven Hugg 2019-08-27 21:04:52 -04:00
parent 773f9a4a91
commit 59da2990b1
2 changed files with 7 additions and 2 deletions

View File

@ -175,7 +175,6 @@ TODO:
- can't step back twice?
- compiler bug in chase
- "shared" in URL doesn't work, leave in URL? (also importURL)
- alert when skeleton file loaded or file not found
WEB WORKER FORMAT

View File

@ -384,6 +384,12 @@ export var SampleAudio = function(clockfreq) {
idrain = (idrain + 1) % bufferlist.length;
}
}
function clearBuffers() {
if (bufferlist)
for (var buf of bufferlist)
buf.fill(0);
}
function createContext() {
var AudioContext = window['AudioContext'] || window['webkitAudioContext'] || window['mozAudioContext'];
@ -425,7 +431,6 @@ export var SampleAudio = function(clockfreq) {
// Chrome autoplay (https://goo.gl/7K7WLu)
if (this.context.state == 'suspended') {
this.context.resume();
console.log('AudioContext should resume');
}
return; // already created
}
@ -447,6 +452,7 @@ export var SampleAudio = function(clockfreq) {
this.stop = function() {
this.context && this.context.suspend();
clearBuffers(); // just in case it doesn't stop immediately
}
this.close = function() {