是否可以在AudioCompletion事件之后调用Web Audio API的offlineAudioContext的startRendering方法?
var offline = new offlineAudioContext(1, 44100, 44100);
var osc = offline.createOscillator();
osc.connect(offline.destination);
offline.oncomplete = function(e){
console.log(e);
};
offline.startRendering();
setTimeout(function(){
offline.currentTime = 0;
console.log(offline); //context still exists
offline.startRendering(); // nothing happens
osc.start(0);
}, 2000);
另一个问题是,完成事件后所有节点会发生什么?
答案 0 :(得分:2)
一个好问题。我将此归档为问题(https://github.com/WebAudio/web-audio-api/issues/346)。我希望不会,它应该只能使用一次 - 否则我们需要处理不能线性进行的时间。 (因为大概你可能希望开始时间跳回到零。)我们还需要清除任何有状态节点的状态(如卷积器,延迟,过滤器)。
另一方面,节点 - 如果你不保留对它们的任何引用,我希望它们会被释放并可用于垃圾收集,就像任何其他JS对象一样。