怎么实现 createScriptProcessor 到 AudioWorkletNode和AudioWorkletProcessor的过渡

zhtoad 2021-05-11 12:16:44
各位,以前的项目用的 createScriptProcessor 来处理音频。
但是现在发现这个方法被禁用了。网页有提醒的。
转成
AudioWorkletProcessor AudioWorkletNode
以前的 createScriptProcessor 有事件。得到数据后,立马存取来。可以直接处理。
现在的 AudioWorkletProcessor。 只有一个process,没有事件。
请问,我怎么把里面的样点数据导出来,用到以前的框架下。
以前的好理解:主线程里面注册事件就可以了。
recorder.onaudioprocess = function (e) {
save(e.inputBuffer.getChannelData(0));
};
但是, AudioWorkletProcessor里面。只有一个process,有人弄出来数据吗? 谢谢。
process(inputs, outputs, parameters) {
const input = inputs[0];
const output = outputs[0];
const gain = parameters.gain;

for (let channel = 0; channel < input.length; ++channel) {
const inputChannel = input[channel];
const outputChannel = output[channel];
if (gain.length === 1) {
for (let i = 0; i < inputChannel.length; ++i){
outputChannel[i] = inputChannel[i] * gain[0];
//this.cb(inputChannel[i]);
window.recorder.audioData.input(inputChannel[i]);
}
} else {
for (let i = 0; i < inputChannel.length; ++i)
outputChannel[i] = inputChannel[i] * gain[i];
}
}

return true;
}
...全文
3 点赞 收藏 回复
写回复
回复

还没有回复,快来抢沙发~

发动态
发帖子
JavaScript
创建于2007-09-28

5.1w+

社区成员

22.3w+

社区内容

Web 开发 JavaScript
社区公告
暂无公告