HarmonyOS 录制音频,获取录制音频流的音量

用audio.AudioCapturer 来进行音频录制,想要获取说话人的音量大小,做一个音量波动的动画,想问下有没有相关的api

HarmonyOS
2024-12-27 14:40:15
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

1.通过以下方法可以把PCM数据转成对应音量的分贝值:

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

2.尝试使用https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-audio-V5#getmaxamplitudeforinputdevice12

分享
微博
QQ
微信
回复
2024-12-27 17:43:51
相关问题
HarmonyOS音频录制相关
630浏览 • 1回复 待解决
HarmonyOS 音频录制相关demo
389浏览 • 1回复 待解决
HarmonyOS 音频录制与播放
1105浏览 • 1回复 待解决
音频录制开发相关问题
6083浏览 • 1回复 待解决
HarmonyOS 咨询音频录制功能细节
588浏览 • 1回复 待解决
使用AudioCapturer开发音频录制功能
1574浏览 • 1回复 待解决
HarmonyOS 是否支持MP3音频录制
477浏览 • 1回复 待解决
OpenSL ES音频录制示例调用崩溃
2139浏览 • 1回复 待解决
OHAudio实现低时延音频录制和播放功能
2068浏览 • 1回复 待解决