AudioWorklet
我想在 chrome 扩展中使用 , 实时修改麦克风输入。
举一个简单的例子,我只想传输一个振荡波,就像在这个 plnkr中一样,其中一个被传输到output
.
我首先创建工作集:
await audioCtx.audioWorklet.addModule(WORKLET_PATH);
this.worklet = new AudioWorkletNode(audioCtx, 'oscillator');
this.worklet.connect(audioCtx.destination);
然后,我连接一个麦克风:
this.microphoneStream = await navigator.mediaDevices.getUserMedia({audio: true});
this.microphone = audioCtx.createMediaStreamSource(this.microphoneStream);
console.log('microphone', this.microphone.mediaStream.getTracks()[0].label);
this.microphone.connect(this.worklet as AudioWorkletNode);
在示例 plnkr 中processor.js
,我没有修改输出,而是修改了输入,将第 15 行设置为:
const output = inputs[0];
但不幸的是,这不会修改麦克风。如果我只是播放麦克风音频,我听不到振荡器