在 Web Audio 中播放原始音频 PCM 样本

Chr*_*ris 5 javascript audio buffer arraybuffer web-audio-api

我有一组声音样本(16 位):

[0, 120, 320, 120, 0, -100, -30000, 65, 2, 3, 10, ...]
Run Code Online (Sandbox Code Playgroud)

它们的范围是 -32768 到 32767。我希望能够使用 Web Audio API 播放样本。

我知道它希望源缓冲区是一个ArrayBuffer,但我无法弄清楚如何将一堆样本转换ArrayBuffer为要使用 Web Audio API 播放的 。

有小费吗?

cwi*_*lso 5

创建一个新的 AudioContext,使用 CreateBuffer 创建一个正确长度和通道数的 AudioBuffer,然后使用 getChannelData 访问位 - 然后运行一个循环,为每个样本设置 bufferData[i] = (original_data[i] / 32768);