[英]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.