如何使用Java和没有javax.sound来确定8位WAV文件是已签名还是未签名

che*_*cho 3 java unsigned signed bytearray wav

我只需要通过读取文件就知道8位的".wav"是有符号还是无符号的PCM.我不能使用"javax.sound.sampled.*"或AudioSystem库.

che*_*cho 7

在wav文件中,8位样本存储为无符号字节,范围从0到255. 16位样本以2的补码形式存储为有符号整数.


end*_*ith 5

8位(或更低)的WAV文件始终未签名。始终签名9位或更高:

每个样本都包含在整数i中i的大小是包含指定样本大小所需的最小字节数。最低有效字节先存储。代表采样幅度的位存储在i的最高有效位中,其余位设置为零。

例如,如果样本大小(记录在nBitsPerSample中)为12位,则每个样本都存储在2字节整数中。第一个(最低有效)字节的最低有效四位设置为零。

各种大小的PCM波形样本的数据格式以及最大值和最小值如下:

在此处输入图片说明

多媒体编程接口和数据规范1.0 -IBM / Microsoft,1991年8月