最近做到这个需求,在网上找不到类似的就自己撸了一个
1.首先获取录音的分贝值
private void updateMicStatus() {
if(recorder != null && isRecord) {
int ratio = recorder.getMaxAmplitude() / BASE;
int db = 0;// 分贝
if(ratio > 1)
db = (int) (20 * Math.log10(ratio));
final double finalDb = db;
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
((VoiceWave) activity.findViewById(R.id.videoView)).setDecibel((int) finalDb);
}
});
mHandler.postDelayed(mUpdateMicStatusTimer, SPACE);
}
}
2.创建数据源
private void initData(int decibel) {
int quietDecibel;
if(isHeadSetO