Androidで録音される音量を調整する方法

このプログラムで、利得制御ができるらしいです。
いまいち、動作原理はよくわかっていません。

audioRec = new AudioRecord(
        MediaRecorder.AudioSource.MIC,
        SAMPLING_RATE,
        AudioFormat.CHANNEL_IN_MONO,
        AudioFormat.ENCODING_PCM_16BIT,
        bufSize * 2); // 2倍にしないと処理落ちするらしい。

if (AutomaticGainControl.isAvailable()) {
    AutomaticGainControl agc = AutomaticGainControl.create(audioRec.getAudioSessionId());
    agc.setEnabled(true);
    Log.i("自動利得制御", "有効にしました。");
} else {
    Log.i("自動利得制御", "対応していない端末です。");
}

audioRec.startRecording();

とりあえず、手持ちのスマホでは対応していませんでした。
対応している端末であれば、多少は変化があるはずです。

システム開発

Posted by @erestage