/* callback是录音开始执行的方法 */
export async function startRecorde(callback, getGecibel) {
if(hasVoicePermission) {
recorderManager.onStart(callback);
recorderManager.start({
format: 'PCM',
sampleRate: 8000,
numberOfChannels: 2,
encodeBitRate: 16000,
frameSize: 4,
duration: 600000
});
recorderManager.onFrameRecorded((res) => {
const { frameBuffer } = res;
let uint16Array = new Int16Array(frameBuffer)
let len = uint16Array.length
let squareSum = 0
uint16Array.forEach(uint16 => {
squareSum += uint16 * uint16
})
if(squareSum < 10000) return
let recordVolume = squareSum / len
let db= parseInt(10 * Math.log10(recordVolume))
getGecibel(db)
})
} else {
const pre = await executePermission()
if(pre) {
startRecorde(callback)
}
}
}
uniapp微信小程序录音时获得分贝数
于 2024-08-14 16:24:33 首次发布