我已经能够在演示文稿中找到一张幻灯片,它准确地描述了这一点:这里
API 的正常使用是实时处理音频。相反,我们可以通过整个系统对音频进行预处理并得到结果:
唯一的问题是我对音频 API 的理解过于简单,无法从代码示例中看出“技巧”是什么:
var sampleRate = 44100.0;
var length = 20; // seconds
var ctx = new webkitAudioContext(2, sampleRate * length, sampleRate);
ctx.oncomplete = function(e) {
var resultAudioBuffer = e.renderedBuffer;
...
};
function convolveAudio(audioBuffer, audioBuffer2) {
var source = ctx.createBufferSource();
var convolver = ctx.createConvolver();
source.buffer = audioBuffer;
convolver.buffer = audioBuffer2;
// source -> convolver -> destination.
source.connect(convolver);
convolver.connect(ctx.destination);
source.noteOn(0);
ctx.startRendering();
}
但我认为至少分享这个比完全保留它更好,即使这不是我希望给出的答案。