web-dev-qa-db-ja.com

録音の音量を上げるAndroid AudioRecord

私はAudioRecordとlameを使用して、mp3サンプルへのマイク入力を12秒間録音しています。オーディオは期待通りレコーダーですが、音量が小さすぎることに気づきました。

録音の音量を上げる方法はありますか?

11
Wedava

audioRecordクラスには再生するゲイン設定がないため、録音するオーディオの音量を制御することはできません。オーディオの音量が小さいのはハードウェアに関連しており、デバイスごとに異なります。試すことができるいくつかのオプションがあります。

1)さまざまなモードでオーディオレコードを開いてみて、何が最適かを確認します。チェック--- http://developer.Android.com/reference/Android/media/MediaRecorder.AudioSource.html

2)オーディオレコードでは、生のPCMバッファを取得します。ビット(チャネルあたり8/16ビット)を左または右にシフトしてゲインを2倍または半分にする簡単なコード/関数を記述できます。 (非常に大雑把なボリュームコントロールと考えてください)

3)よりスムーズな制御のためのより複雑なデジタルゲイン技術をネットで検索してみてください。多くの実装があります。 (独自の技術もあります)

チェック: Androidでオーディオを録音しながらマイクの感度を調整する方法

6
Shrish

デバイスの音量を上げることもできます。

AudioManager am = (AudioManager)mContext.getSystemService(Context.AUDIO_SERVICE);

int previousVolume = am.getStreamVolume(AudioManager.STREAM_MUSIC);
am.setStreamVolume(AudioManager.STREAM_MUSIC, 10, 0);

{... do your things ... } 

am.setStreamVolume(AudioManager.STREAM_MUSIC, previousVolume, 0);

私の場合、これは簡単な修正であり、アプリケーションの他の部分でも機能しました。

0
Alberto M