如何将.WAV音频数据样本转换为双精度类型?

ded*_*alo 5 java audio signal-processing wav sampling

我正在处理可处理音频数据的应用程序。我正在使用Java(我已经添加了MP3SPI,Jlayer和Tritonus)。我正在将音频数据从.wav文件提取到字节数组。我正在使用的音频数据样本是16位立体声。

根据我读过的一个样本的格式,是:

AABBCCDD

其中AABB代表左声道和CCDD右声道(每个声道2个字节)。我需要将此样本转换为双精度值类型。我正在阅读有关数据格式的信息。Java使用Big Endian,.wav文件使用little endian。我有点困惑。您能帮我完成转换过程吗?谢谢大家

G B*_*G B 5

警告:整数和字节是带符号的。将低位字节打包在一起时可能需要屏蔽低位字节:

for (int i =0; i < length; i += 4) {
    double left = (double)((bytes [i] & 0xff) | (bytes[i + 1] << 8));
    double right = (double)((bytes [i + 2] & 0xff) | (bytes[i + 3] << 8));

    ... your code here ...

}
Run Code Online (Sandbox Code Playgroud)