java - 如何从android中的字节数组中提取振幅?

标签 java android audio

我正在使用录音机从麦克风录制声音。 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/

相关文章:

google-chrome - 如何从笔记本电脑拔出耳机的状态下检测到设备发生了变化-Chrome

audio - 有没有一款软件可以自动打乱/模糊音频文件的一部分?

java - 传递对另一个 Activity 的引用 - Android

java - "<"和 ">"符号的问题

android - 使用 ViewPager 滑动时 fragment 不会调用 OnResume()

java - 我如何弄清楚如何调试这个? Http响应

java - 使用查询更新数据库值或使用合并滚动列表?

java - Jackson:在对象的不同属性中反序列化 JSON 数组

java - 如何在java opencv中找到最大的轮廓

silverlight - 用户在Windows Phone 7中开始讲话后就立即开始录音?