24位wav文件的数据块是否有签名或无符号字节?

时间:2011-03-31 19:09:33

标签: java byte wav signed 24-bit

我正在尝试编写一个程序,它将使用java创建24位wav文件。 java sound api不支持24位音频,所以我试图从头开始编写文件。这开始是一种随意的兴趣,但它已成为比特,字节,符号和块的史诗般的探索。

24位wav文件的数据块是否有有符号或无符号字节?

Java缺乏无符号字节令人沮丧。我已经读过掩码整数位可以用来表示无符号字节,但我想知道它将如何在最终输出到文件中表示。

很抱歉分歧...我的问题是“24位wav文件的数据块是否有签名或无符号字节?”

无论哪种方式,我都要弄清楚这个签名/未签名的业务,但我找不到有关我找到的参考文献中的数据块的答案。

2 个答案:

答案 0 :(得分:2)

我还可以确认WAV文件中的24位数据是否已签名(当数据以WAVE_FORMAT_PCM格式存储时)。更一般地说,当WAVE_FORMAT_PCM数据为每个样本8位时,它总是被标记为EXCEPT。

答案 1 :(得分:1)

根据this(以及我个人的经验),Microsoft WAVE文件使用二进制补码有符号整数来表示大于8位的PCM样本。默认情况下,这些整数的字节顺序是little-endian。

您可以使用SoX包中的soxi来验证您自己的测试文件(您确实有一些,对吧?)。

请注意,WAVE文件还可以保存纯PCM以外的音频格式。