2011-03-31 164 views
2

我想写一个程序,将使用java创建24位wav文件。 java声音API不支持24位音频,所以我试图从头开始编写文件。这起初是偶然的兴趣,但它已成为一个史诗级的位,字节,符号和块的追求。24位wav文件的数据块是否有符号或无符号字节?

做了24bit的WAV文件的数据块已签署或无符号字节?

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

对不起了分歧......我的问题是“做一个24bit的WAV文件的数据块已签署或无符号字节?”

无论哪种方式,我将要弄清楚这个符号/无符号的业务,但我无法找到关于在引用我已经找到了数据块的答案。

+0

.wav文件只是一个容器。示例数据的实际符号性取决于用于存储音频的任何编解码器。 – 2011-03-31 19:12:29

回答

1

根据this(和我自己的亲身经历)微软WAVE文件使用二进制补码符号整数表示PCM采样比8位的。默认情况下,这些整数的字节顺序是小尾数。

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

请注意,WAVE文件也可以按住不是普通PCM等音频格式。

+0

谢谢,该工具看起来非常有用。我昨天看了那个非常网页,但是我错过了那个链接。 – 2011-03-31 19:50:25

2

我也可以确认WAV文件中的24位数据已签名(当数据以WAVE_FORMAT_PCM格式存储时)。更一般地说,WAVE_FORMAT_PCM数据总是有符号的,除非它是每个采样8位。

+0

感谢您的回复。我有这样的感觉,但我找不到任何具体的确认。我在网上发现的大部分信息都是关于波形中的16位音频。 – 2011-03-31 19:52:25

相关问题