繁体   English   中英

Android Audio Recorder的** getMaxAmplitude()**在不同的设备上返回不同的值

[英]Android Audio Recorder's **getMaxAmplitude()** returns different values on different devices

我已经为我的应用程序使用了Android的录音机来计算周围的噪音。

我使用getMaxAmplitude()函数获得了最大振幅,并使用以下公式将其转换为db

db = 20 * Math.log10( getMaxAmplitude() / ref )

ref=32767 (仅参考值)

但是,当我在不同设备上测试应用程序时,“ db”并不相同。这意味着getMaxAmplitude()在设备之间有所不同。

如果在索尼Tipo中显示-40db,则在Samsung S4中显示-20db。

为什么会有这种变化?

不同的设备将具有不同的麦克风,不同的灵敏度和不同的音频硬件/前置放大器。 此外,它们可能会应用不同的输入增益,均衡器,还会应用自动增益控制(AGC)和降噪算法,这可以解释您所看到的巨大差异。

在某些设备上,您可能可以运行AlsaMixer (以root用户身份)来控制麦克风的输入增益。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM