Enable AEC and AGC

Signed-off-by: Leo Ma <begeekmyfriend@gmail.com>
camera2
Leo Ma 9 years ago
parent 6c44514793
commit e75f2f1b74

@ -3,19 +3,22 @@ package net.ossrs.yasea;
import android.content.Context; import android.content.Context;
import android.media.AudioManager; import android.media.AudioManager;
import android.media.AudioRecord; import android.media.AudioRecord;
import android.media.audiofx.AcousticEchoCanceler;
import android.media.audiofx.AutomaticGainControl;
import com.github.faucamp.simplertmp.RtmpHandler; import com.github.faucamp.simplertmp.RtmpHandler;
import com.seu.magicfilter.utils.MagicFilterType; import com.seu.magicfilter.utils.MagicFilterType;
import java.io.File; import java.io.File;
import java.io.IOException;
/** /**
* Created by Leo Ma on 2016/7/25. * Created by Leo Ma on 2016/7/25.
*/ */
public class SrsPublisher { public class SrsPublisher {
private AudioRecord mic; private static AudioRecord mic;
private static AcousticEchoCanceler aec;
private static AutomaticGainControl agc;
private boolean aloop = false; private boolean aloop = false;
private Thread aworker; private Thread aworker;
@ -67,6 +70,20 @@ public class SrsPublisher {
return; return;
} }
if (AcousticEchoCanceler.isAvailable()) {
aec = AcousticEchoCanceler.create(mic.getAudioSessionId());
if (aec != null) {
aec.setEnabled(true);
}
}
if (AutomaticGainControl.isAvailable()) {
agc = AutomaticGainControl.create(mic.getAudioSessionId());
if (agc != null) {
agc.setEnabled(true);
}
}
if (!mCameraView.startCamera()) { if (!mCameraView.startCamera()) {
mEncoder.stop(); mEncoder.stop();
return; return;
@ -237,6 +254,18 @@ public class SrsPublisher {
mic.release(); mic.release();
mic = null; mic = null;
} }
if (aec != null) {
aec.setEnabled(false);
aec.release();
aec = null;
}
if (agc != null) {
agc.setEnabled(false);
agc.release();
agc = null;
}
} }
public void switchMute() { public void switchMute() {

Loading…
Cancel
Save