android中如何从字节数组中提取振幅



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

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

现在从recoChunk中我想找到记录的最大振幅我该怎么做呢?

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

最新更新