通过AudioSystem.read()读取的字节格式

时间:2015-10-01 10:37:28

标签: java audio

我想知道TargetDataLine.read()返回的字节格式。我得到数字,但我不知道他们代表什么。任何的想法?我用谷歌搜索试图找出并阅读API文档,但无法解决...

1 个答案:

答案 0 :(得分:0)

这取决于您尝试读取的音频流的位深度和编码。假设每个数据流代表单个音频通道,则不会担心交错通道(即,流是单声道而不是立体声或环绕声)。类实现TargetDataLine的对象的音频格式将决定读取时数据的解释方式。

如果流表示最常见音频格式的音频,即红皮书音频(采样率为44.1 kHz的16位采样),则每两个字节代表一个样本;该样本将是一个带符号的16位整数线性分布幅度值,范围从正位移0 dBFS(最大正整数值)到负无穷大分贝(整数值0)到负位移0 dBFS(最大负整数值) )。类似地,如果位深度为24位,那么每3个字节将代表一个LPCM样本。

如果位深度为32位或更高,那么格式将是带符号的浮点PCM样本。