Android录音时,根据PCM数据获取音量值(单位分贝)
16lz
2021-01-23
Android录音时,根据PCM数据获取音量值(单位分贝)
采样值为16bit时,根据pcm数据获取分贝,可以按如下方法进行计算
private void calcDecibelLevel(short[] buffer, int readSize) { double sum = 0; for (short rawSample : buffer) { double sample = rawSample / 32768.0; sum += sample * sample; } double rms = Math.sqrt(sum / readSize); final double db = 20 * Math.log10(rms); mVolume = (int)db; Log.e(TAG, "calcDecibelLevel:volume = " + mVolume + ", readSize = " + readSize);}
更多相关文章
- Android 之往通讯录中添加数据和查询数据
- android数据库使用小结
- Android Activity、Fragment之间的数据传递和返回
- Android中数据存储的三种方式--基础
- 深入理解数据结构
- android 基于ffmpeg将视频采集的nv21转h264格式数据