diff options
author | Jerzy GÅ‚owacki <jerzy.glowacki@nexocode.com> | 2020-04-14 21:45:24 +0300 |
---|---|---|
committer | Daniel Lublin <daniel@lublin.se> | 2020-08-13 15:07:26 +0300 |
commit | 8be9ef944ec5b3c0adc73dc12b322a5d9f9b1abc (patch) | |
tree | 7809a175ddbd3b750134eced531c96011a95bf2f | |
parent | 33ed38d674a5b00448aa54531e517f059265cc86 (diff) |
Add Acoustic EchoCanceler, Automatic Gain Control and Noise Suppressor if available
-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; } |