Конвертировать audioContext обратно в буферы - PullRequest
1 голос
/ 15 апреля 2020

У меня есть audioContext, который получает медиа от createMediaElementSource. Я хочу проанализировать этот звук на go в AudioBuffers или что-то подобное, что я могу отправить другому клиенту через веб-сокеты.

let audioElement = document.querySelector('video')
let audioContext = new window.AudioContext()
let source = audioContext.createMediaElementSource(audioElement)
source.connect(deliverToOtherClientOrSomething)

Я попытался создать AudioWorkletNode , но проблема с этим подходом состоит в том, что он не позволяет мне завершить цепочку там, но вынуждает меня перенаправить аудио на какой-то другой элемент AudioContext, который нежелателен.

1 Ответ

0 голосов
/ 05 мая 2020

Итак, в конце концов, эта проблема была решена с помощью аудио-рабочего узла. При создании AudioWorkletNode к нему можно передать параметры. Одним из вариантов является numberOfOutputs. Делая это, мой вопрос полностью ответил.

Mainfile

const sendProcessor = new AudioWorkletNode(audioContext, 'send-processor', {numberOfOutputs:0})
sendProcessor.port.onmessage = (event) => {
    callback(event.data);
}

Файл процессора

process(inputs, outputs) {
    this.port.postMessage(inputs[0][0]);
    return true;
}
...