跳到主要内容

认识

2024年02月06日
柏拉文
越努力,越幸运

一、认识


AudioWorkletProcessor 接口代表了一个 自定义的音频处理代码 AudioWorkletNode. 它身处于 AudioWorkletGlobalScope (en-US) 并运行在 Web Audio rendering 线程上。同时,一个建立在其基础上的 AudioWorkletNode 运行在主线程上。

二、语法


xxxProcessor.js
class XxxProcessor extends AudioWorkletProcessor {
constructor(...args) {
super(...args);
this.port.onmessage = (e) => {
console.log(e.data);
this.port.postMessage("pong");
};
}
process(inputs, outputs, parameters) {
return true;
}
}

registerProcessor("xxx-processor", XxxProcessor);
const audioContext = new AudioContext();
await audioContext.audioWorklet.addModule('xxxProcessor.js');
const audioWorkletNode = new AudioWorkletNode(audioContext, 'xxx-processor', options);
audioContext.context(audioWorkletNode).context(audioContext.destination);