我为录音机应用程序工作,想添加增益控制,但我不知道该怎么做。我可以访问音频缓冲区,但我不知道如何使声音更大或更慢。我看到另一个应用程序有一个 seekBar 用于从特定范围中选择分贝。
aRecorder.read(buffer, 0, buffer.length);
fWriter.write(buffer); // Write buffer to file
请告诉我应该怎么做才能在我的应用程序中实现增益控制。
谢谢。
我为录音机应用程序工作,想添加增益控制,但我不知道该怎么做。我可以访问音频缓冲区,但我不知道如何使声音更大或更慢。我看到另一个应用程序有一个 seekBar 用于从特定范围中选择分贝。
aRecorder.read(buffer, 0, buffer.length);
fWriter.write(buffer); // Write buffer to file
请告诉我应该怎么做才能在我的应用程序中实现增益控制。
谢谢。
改变音量很简单,只需将所有样本乘以某个分数。+/- 3dB(分贝)的变化分别对应于乘以 2 或 0.5(参见http://en.wikipedia.org/wiki/Decibel)。为防止输出不连续,请确保从头到尾平滑地改变乘法因子。
请参阅 AudioSampleBuffer::applyGainRamp() @ http://www.rawmaterialsoftware.com/api/classAudioSampleBuffer.html