Android - 如何在录制时添加增益控制

Posted

技术标签:

【中文标题】Android - 如何在录制时添加增益控制【英文标题】:Android - how to add gain control when recording 【发布时间】:2012-05-04 13:36:59 【问题描述】:

我为一个录音机应用工作,想添加增益控制,但我不知道怎么做。我可以访问音频缓冲区,但我不知道如何使声音更大或更慢。 我看到另一个应用程序有一个 seekBar 用于从特定范围内选择分贝。

aRecorder.read(buffer, 0, buffer.length);
fWriter.write(buffer); // Write buffer to file

请告诉我应该怎么做才能在我的应用中实现增益控制。

谢谢。

【问题讨论】:

【参考方案1】:

更改音量很简单,只需将所有样本乘以某个分数即可。 +/- 3dB(分贝)的变化分别对应于乘以 2 或 0.5(参见 http://en.wikipedia.org/wiki/Decibel)。为防止输出不连续,请确保从头到尾平滑地改变乘法因子。

参见 AudiosampleBuffer::applyGainRamp() @http://www.rawmaterialsoftware.com/api/classAudioSampleBuffer.html

【讨论】:

谢谢,我会尝试执行您的建议。请告诉我是否有一些公式可以从分贝变化中获得分数(例如:3dB:2 和(-3)dB:0.5)。 scale = std::pow (10, 分贝 / 20.0 )

以上是关于Android - 如何在录制时添加增益控制的主要内容,如果未能解决你的问题,请参考以下文章

我正在使用 nAudio 库从 MIC 录制,如何增加 MIC 的增益?

如何在为音频会议混合音频时自动增益控制 (AGC)

如何基于 ZEGO SDK 实现回声消除自动增益控制降噪功能

如何在android中录制音频时做Visualizer

Android - 录制视频时在前后摄像头之间切换

如何在 Android TV 中开始视频录制(开发)