Android AudioRecord - 使用短数组还是字节数组?

Ale*_*cus 4 audio android audio-recording audiorecord android-audiorecord

我正在开发一个记录音频的安卓应用程序。为了获得最佳音频质量,最好short在阅读时使用s缓冲区?

//aRecorder.read(shortBuffer, 0, shortBuffer.length);
aRecorder.read(byteBuffer, 0, byteBuffer.length);
Run Code Online (Sandbox Code Playgroud)

使用short[]与使用byte[]和考虑来自 2bytes(byteBuf[i]byteBuf[i+1])的样本不同?如果我使用short[],无论如何我都必须将其转换为将其ByteBuffer写入文件。

我问这个是因为我想知道如果我切换到shorts 的缓冲区,我的录音会更准确吗?例如,shortBuffer[0]包含了相同的信息byteBuffer[0]byteBuffer[1]

录音可以是 16 位 PCM 或 8 位 PCM(用户可以选择采样率、通道数、PCM 16 或 8 等)

我必须提到输出文件将采用 WAV 格式。

Mr.*_*.Me 5

使用ShortByte缓冲区没有区别,它只是相同底层数据的两种表示。

我能想到的唯一区别是,您在记录期间限制了如何访问数据的选项,因为简而言之,您的最小数据表示将是 16 位(短尺寸),但您可以再次 x 和短片的任何部分对象以获取其字节之一。

如果您正在进行任何类型的实时音频处理,您最好使用字节来轻松进行数据处理。