From c9bc0433a0aa2a43c657b6af3aaafe3340aa7248 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jerzy=20G=C5=82owacki?= Date: Tue, 14 Apr 2020 20:45:24 +0200 Subject: [PATCH] Add Acoustic EchoCanceler, Automatic Gain Control and Noise Suppressor if available --- .../java/se/lublin/humla/audio/AudioInput.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) 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; } -- GitLab