在过去的两周里,我尝试使用 javascript 在浏览器中实时录制音频并更改其编解码器,我在所有测试用例中使用脚本处理器实时录制音频,但另一方面,我尝试了太多的库和包来编码和解码音频,但没有一个有效, 总是存在一个问题,有时编码器无法识别音频编解码器,有时解码器无法解码编码的数据。 我用 PvRecodrder 在 c# 中制作了这样的东西,它将音频录制为short[]
,实际上是PCM
由无符号字节组成的缓冲区。 然而,脚本处理器的通道数据float32[]
相比之下是如此不同甚至奇怪,其值范围从非常小的负数到大约 1 的正数。
现在我只是想知道这个通道数据到底是什么? 此float32[]
的类型和编解码器是什么?.wav
,.pcm
还是什么?
AudioBuffer
的通道数据通常包含介于 -1 和 1 之间的值。 但是,由于这些值存储在Float32Array
因此它们也可能更大或更小。但是,在标称范围之外播放此类AudioBuffer
可能会导致可听见的失真。
https://webaudio.github.io/web-audio-api/#AudioBuffer