如何从android中的字节数组中提取幅度?

DCo*_*der 1 java audio android

我正在使用录音机从麦克风录制声音.recoChunk byte []存储原始记录,如下所示.

while (isRecording == true) {
    Log.w("myMsg", "recording..");
    recoChunk = new byte[minBuffSize];
    audioRecord.read(recoChunk, 0, minBuffSize);
    mFosRaw.write(recoChunk);
}
Run Code Online (Sandbox Code Playgroud)

现在从recoChunk我想找到最大幅度记录我该怎么做?

小智 6

您可以将字节数组转换为与其大小中录制的音频的位深度匹配的类型的数组.例如,对于16位音频,您可以使用short,因为它包含16位有符号整数值.对于8位,您可以在不进行转换的情况下使用字节数组.然后,简单地说,数组中最大的"数字"(您可能想要取绝对值)将是具有最高振幅值的样本.