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);}

更多相关文章

  1. Android 之往通讯录中添加数据和查询数据
  2. android数据库使用小结
  3. Android Activity、Fragment之间的数据传递和返回
  4. Android中数据存储的三种方式--基础
  5. 深入理解数据结构
  6. android 基于ffmpeg将视频采集的nv21转h264格式数据

随机推荐

  1. Android之HorizontalScrollView(一)
  2. Android(安卓)dumpsys
  3. Android(安卓)驱动(5)---MTK 平台分区表
  4. Android(安卓)6.0 使用HttpClient的问题
  5. android 对话框集合
  6. android switch 控件自定义样式不显示??
  7. AllowBackup/FullBackupContent Problems
  8. Android(安卓)AutoCompleteTextView示例
  9. android Comparator做排序
  10. Android(安卓)应用安装位置