AudioRecord 可以用来监听环境声音。通过计算每段声音可以求声贝 public double countDb (short[] data)
{
float BASE=32768f;
float maxAmplitude = 0;
for (int i = 0; i < data.length; i++)
{
maxAmplitude += data[i] * data[i];
}
maxAmplitude=(float)Math.sqrt(maxAmplitude/data.length);
float ratio=maxAmplitude / BASE;
float db =0;
if(ratio>0)
{
db = (float) (20 * Math.log10(ratio))+100;
}
return db;
}
{
float BASE=32768f;
float maxAmplitude = 0;
for (int i = 0; i < data.length; i++)
{
maxAmplitude += data[i] * data[i];
}
maxAmplitude=(float)Math.sqrt(maxAmplitude/data.length);
float ratio=maxAmplitude / BASE;
float db =0;
if(ratio>0)
{
db = (float) (20 * Math.log10(ratio))+100;
}
return db;
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货