用AudioWorklet替换scriptProcessorNode

时间:2018-11-01 08:44:14

标签: audio-recording web-audio voice-recording

我正在记录用户的麦克风输入并进行处理。问题是我正在使用scriptProcessorNode处理数据,但是here表示已弃用并替换为AudioWorklet。问题是没有明确的方法可以用AudioWorklet替换此功能,而且Google的所有example projects with AudioWorklets都没有用麦克风输入做任何事情。有没有办法用Audio Worklet替换此代码?这是“应”被替换的代码。

    // Connect analyser
    this.options.source.connect(this.analyser);
    // Create ScriptProcessorNode
    this.scriptProcessorNode = this.options.context.createScriptProcessor(this.options.bufferLen, numChannels, numChannels);
    // Connect scriptProcessorNode (Theretically, not required)
    this.scriptProcessorNode.connect(this.options.context.destination);
    // Create callback to update/analyze floatFrequencyData
    var self = this;
    this.scriptProcessorNode.onaudioprocess = function (event) {
        self.analyser.getFloatFrequencyData(self.floatFrequencyData);
        self.update();
        self.store(event);
        self.monitor();
    };
    // Connect scriptProcessorNode
    this.options.source.connect(this.scriptProcessorNode);

1 个答案:

答案 0 :(得分:2)

我有一个创建AudioWorkletProcessor的简单示例。您可以here对其进行检查。它仅适用于Chromium,而Firefox尚不支持AudioWorklet。

这是我准备显示我遇到的webpack错误的示例,因此请仅检查源代码。如果您运行该项目,除非您在audio-meter.js的第8行注释掉并且在第11行取消注释,否则该项目将失败。文件audio-meter.worker.js将重复相同的内容。