diff options
-rw-r--r-- | src/main/java/se/lublin/humla/audio/AudioInput.java | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/main/java/se/lublin/humla/audio/AudioInput.java b/src/main/java/se/lublin/humla/audio/AudioInput.java index 07fdd76..dd7969c 100644 --- a/src/main/java/se/lublin/humla/audio/AudioInput.java +++ b/src/main/java/se/lublin/humla/audio/AudioInput.java @@ -19,6 +19,10 @@ package se.lublin.humla.audio; import android.media.AudioFormat; import android.media.AudioRecord; +import android.media.audiofx.AcousticEchoCanceler; +import android.media.audiofx.AutomaticGainControl; +import android.media.audiofx.NoiseSuppressor; +import android.os.Build; import android.util.Log; import se.lublin.humla.Constants; @@ -86,6 +90,19 @@ public class AudioInput implements Runnable { throw new AudioInitializationException("AudioRecord failed to initialize!"); } + if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { + int audioSessionId = audioRecord.getAudioSessionId(); + if(AcousticEchoCanceler.isAvailable()) { + AcousticEchoCanceler.create(audioSessionId); + } + if(AutomaticGainControl.isAvailable()) { + AutomaticGainControl.create(audioSessionId); + } + if(NoiseSuppressor.isAvailable()) { + NoiseSuppressor.create(audioSessionId); + } + } + return audioRecord; } |