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;
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.

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

分享
微博
QQ
微信
回复
2024-12-27 17:43:51
相关问题
HarmonyOS音频录制相关
986浏览 • 1回复 待解决
HarmonyOS 音频录制与播放
1541浏览 • 1回复 待解决
HarmonyOS 音频录制相关demo
814浏览 • 1回复 待解决
音频录制开发相关问题
6636浏览 • 1回复 待解决
HarmonyOS 咨询音频录制功能细节
948浏览 • 1回复 待解决
OpenSL ES音频录制示例调用崩溃
2680浏览 • 1回复 待解决
使用AudioCapturer开发音频录制功能
2019浏览 • 1回复 待解决
HarmonyOS 是否支持MP3音频录制
894浏览 • 1回复 待解决
OHAudio实现低时延音频录制和播放功能
2699浏览 • 1回复 待解决