需要有一个功能,JAVA从音频文件中获取并计算音频的分贝值,不是播放声音的大小
除非音频里某种声音的分贝固定,作为标准,才可以大概估算分贝。否则没有参照系,怎么知道声强呢。而且录音和放音设备是有饱和值的。也就是当声音强度过大,它并不能真实地记录和回放出来。
还要考虑信噪比。
private void calcDecibelLevel(short[] buffer, int readSize) {
long v = 0;
// 将 buffer 内容取出,进行平方和运算
for (int i = 0; i < buffer.length; i++) {
v += buffer[i] * buffer[i];
}
// 平方和除以数据总长度,得到音量大小。
double mean = v / (double) readSize;
double volume = 10 * Math.log10(mean);
Log.e("pcm", "分贝值 = " + volume);
}