HarmonyOS 音频采集可以获取到录入的音量么,根据录入音量动态变化,让用户更清晰的感受到录入

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

可以使用audio.AudioCapturer来进行音频录制并获取说话人的音量大小。

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

try {
  await this.cameraInput.open();
  this.mediaSession.addInput(this.cameraInput);
  this.mediaSession.addOutput(this.previewOutput);
  if (isRecord) {
    this.mediaSession.addOutput(this.videoOutput);
  } else {
    this.mediaSession.addOutput(this.photoOutput);
  }

  await this.mediaSession.commitConfig();
  await this.mediaSession.start();

  if (isRecord && this.videoOutput) {
    await this.videoOutput.start();
  }
} catch (err) {

}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('tag sample is ' + sample)
    sum += sample * sample;
  }
  let rms = Math.sqrt(sum / buffer.byteLength);
  let db = 20 * Math.log10(rms);
  console.log('tag db is ' + db)
  return db;
}

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

分享
微博
QQ
微信
回复
2天前
相关问题
HarmonyOS 怎么获取当前系统音量
230浏览 • 1回复 待解决
HarmonyOS 录音音量获取
31浏览 • 1回复 待解决
HarmonyOS 音量监听可以取消监听吗
141浏览 • 1回复 待解决
HarmonyOS如何获取手机当前音量
873浏览 • 1回复 待解决
录音时如何获取 当前输入音量大小
5751浏览 • 1回复 待解决
HarmonyOS 如何设置系统音量
362浏览 • 2回复 待解决
HarmonyOS 普通应用如何调节系统音量
805浏览 • 1回复 待解决
HarmonyOS 拦截实体音量+-按键事件
38浏览 • 1回复 待解决