在我的Web应用程序中,我使用HTML5音频进行音频播放。但是因为我需要音频文件的channelData,所以我需要在应用程序启动时执行以下步骤:
- 使用 Web Audio API 将 ArrayBuffer 解码为 AudioBuffer
- 调用 audioBuffer.getChannelData(0(
- 处理通道数据并转储音频缓冲区
- 使用通道数据,我可以将音频信号绘制到画布上
有没有办法可以从原始数据(ArrayBuffer(计算通道数据?我的应用程序仅支持带有 PCM 16 位的 WAVE。
我知道 WAVE 格式的结构以及如何通过 Javascript 从原始数据中读取值,但我不明白getChannelData()
如何计算其值。我在网上没有找到任何关于它的信息。
getChannelData
没有什么神奇之处;它只是从AudioBuffer
返回数据。 如果你有一个 16 位 PCM WAV 文件,你可以在 Javascript 中轻松地将其解码为 16 位 PCM 值。 要获得getChannelData
会产生的结果,请取该 16 位值除以 32768 以获得介于 -1 和 1 之间的浮点值。