【发布时间】:2020-11-05 21:20:57
【问题描述】:
我目前正在研究一个使用 AudioRecord 以 16 位 PCM 格式录制音频的 Android 应用程序:
byte [] buffer = new byte[1600];
audioRecord.read(buffer, 0, 1600);
它将录制的音频存储到buffer。documentation of this read function 描述了此功能应该仅用于 8 位 PCM。然而,Android 应用程序将它与 16 位 PCM 一起使用(而且它似乎可以正常工作;另一个使用字节数组的 overloaded read variant 也提到通过这种方法使用 16 位 PCM 是可能的,但已弃用)。
现在我不确定每个样本(由 2 个字节组成)是以小端格式还是大端格式存储的。 documentation section about the audio encoding 表示使用 ByteBuffer 而不是字节数组会产生本机字节序(而不是大字节序)。
我怀疑短片是以大端格式存储的,但我找不到这方面的证据。
【问题讨论】: