使用 AudioProcessor 通过 Websocket 发送 PCM 数据

问题描述 投票:0回答:1

我正在尝试从麦克风录制音频数据,并通过 websocket 将其作为带符号的 16 位 PCM 数据以 16000HZ 发送(在浏览器中使用 javascript)。

我可以录制音频,重新采样并发送到扬声器:

const audioStream = await navigator.mediaDevices.getUserMedia({
    audio: true,
    video: false
});
const audioContext = new AudioContext({ 16000 });
const audioStreamSource = audioContext.createMediaStreamSource(audioStream);
audioStreamSource.connect(audioContext.destination);

这可行,但是否也可以定期获取原始音频数据并通过 websocket 发送?

audio-streaming web-audio-api
1个回答
0
投票

您可以使用

AudioWorkletProcessor
访问原始 PCM 数据。

AudioWorkletProcessor
在音频线程上运行,这意味着您需要先将音频数据发送到主线程或 Web Worker,然后才能通过 WebSocket 连接发送它,因为无法在音频上设置 WebSocket 连接线程。

© www.soinside.com 2019 - 2024. All rights reserved.