我正在使用录音机从麦克风录制声音。 recoChunk 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 位,您可以只使用字节数组而不进行强制转换。然后,简单地说,数组中最大的“数字”(您可能想取绝对值)将是具有最高振幅值的样本。
关于java - 如何从android中的字节数组中提取振幅?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23424348/