我想知道从TargetDataLine.read()返回的字节的格式。我得到数字,但我不知道它们代表什么。任何的想法?我已经用Google搜索尝试查找并阅读API文档,但无法解决...

最佳答案

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

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

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

10-05 17:57
查看更多