private pcm2Db(buffer: ArrayBuffer) {
// 获取一个 Int32Array 类型的视图,该视图将数组缓冲区解释为带符号 32 位整数数组
const intArray = new Int32Array(buffer);
let sum: number = 0;
for (let i = 0; i < intArray.length; i++) {
let sample: number = intArray[i] / 32768;
console.log('cwq sample is ' + sample)
sum += sample * sample;
}
let rms = Math.sqrt(sum / buffer.byteLength);
let db = 20 * Math.log10(rms);
console.log('cwq db is ' + db)
return db;
}
1.通过以下方法可以把PCM数据转成对应音量的分贝值:
2.尝试使用https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-audio-V5\#getmaxamplitudeforinputdevice12