Замена scriptProcessorNode на AudioWorklet - PullRequest
0 голосов
/ 01 ноября 2018

Я работаю над записью микрофонного ввода от пользователя и обработкой его. Проблема в том, что я использую scriptProcessorNode для обработки данных, но здесь он сказал, что он устарел и заменен на AudioWorklet . Проблема в том, что нет ясного способа заменить это функциональность с AudioWorklet, и из всех примеров проектов с AudioWorklets от Google, ни один из них ничего не делает с микрофонным входом. Есть ли способ заменить этот код на 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 голосов
/ 12 ноября 2018

У меня есть простой пример создания AudioWorkletProcessor. Вы можете проверить это здесь . Он работает только на Chromium, Firefox пока не поддерживает AudioWorklet.

Это пример, который я подготовил, чтобы показать мою ошибку в веб-пакете, поэтому, пожалуйста, проверяйте только исходный код. Если вы запустите проект, он потерпит неудачу, если вы не прокомментируете строку 8 audio-meter.js и строку 11 комментария. Файл audio-meter.worker.js дублируется с тем же содержимым.

...