【问题标题】:Replacing scriptProcessorNode with AudioWorklet用 AudioWorklet 替换 scriptProcessorNode
【发布时间】:2019-04-05 11:17:05
【问题描述】:

我正在记录用户的麦克风输入并进行处理。问题是我正在使用 scriptProcessorNode 来处理数据,但 here 它说它已被弃用并替换为 AudioWorklet。问题是没有明确的方法可以用 AudioWorklet 替换此功能,并且从所有来自谷歌的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);

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 我无法访问您附加的链接
    • 嘿,我遇到了一些问题,我真的没有时间调试它。我看到 audio-meter.js 正在尝试导入 audio-meter.worker.js 但 audio-meter.worker.js 没有提供任何默认导出。我正在尝试在 localhost 上测试该站点。
    • 我的错,它确实有效。你在用音频输入做什么?
    • 仍然没有,但想法是使用输入的 rms 生成一个 rxjs 流。我试图弄清楚如何测试这个。我见过这个:github.com/mohayonao/web-audio-test-api,但它不支持 AudioWorklets。所有的想法都是受欢迎的。您在这里有原始项目:bitbucket.org/alvaro_maceda/notoono,但不要期望太多。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    相关资源
    最近更新 更多