1

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];

但不幸的是,这不会修改麦克风。如果我只是播放麦克风音频,我听不到振荡器

4

0 回答 0