forked from mirror/monocles_chat_clean
return audio mode to normal (instead of previous mode) after call ended
(cherry picked from commit 304411fc096f4f5b9b0b8db36906d544baaccf0d)
This commit is contained in:
parent
9a75924cb5
commit
a69d65a9a1
1 changed files with 3 additions and 14 deletions
|
@ -52,7 +52,6 @@ public class AppRTCAudioManager {
|
|||
@Nullable
|
||||
private AudioManagerEvents audioManagerEvents;
|
||||
private AudioManagerState amState;
|
||||
private int savedAudioMode = AudioManager.MODE_INVALID;
|
||||
private boolean savedIsSpeakerPhoneOn;
|
||||
private boolean savedIsMicrophoneMute;
|
||||
private boolean hasWiredHeadset;
|
||||
|
@ -179,21 +178,17 @@ public class AppRTCAudioManager {
|
|||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
// TODO(henrika): audioManager.requestAudioFocus() is deprecated.
|
||||
public void start(AudioManagerEvents audioManagerEvents) {
|
||||
Log.d(Config.LOGTAG, "start");
|
||||
Log.d(Config.LOGTAG, AppRTCAudioManager.class.getName() + ".start()");
|
||||
ThreadUtils.checkIsOnMainThread();
|
||||
if (amState == AudioManagerState.RUNNING) {
|
||||
Log.e(Config.LOGTAG, "AudioManager is already active");
|
||||
return;
|
||||
}
|
||||
awaitMicrophoneLatch();
|
||||
// TODO(henrika): perhaps call new method called preInitAudio() here if UNINITIALIZED.
|
||||
Log.d(Config.LOGTAG, "AudioManager starts...");
|
||||
this.audioManagerEvents = audioManagerEvents;
|
||||
amState = AudioManagerState.RUNNING;
|
||||
// Store current audio state so we can restore it when stop() is called.
|
||||
savedAudioMode = audioManager.getMode();
|
||||
savedIsSpeakerPhoneOn = audioManager.isSpeakerphoneOn();
|
||||
savedIsMicrophoneMute = audioManager.isMicrophoneMute();
|
||||
hasWiredHeadset = hasWiredHeadset();
|
||||
|
@ -281,9 +276,8 @@ public class AppRTCAudioManager {
|
|||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
// TODO(henrika): audioManager.abandonAudioFocus() is deprecated.
|
||||
public void stop() {
|
||||
Log.d(Config.LOGTAG, "stop");
|
||||
Log.d(Config.LOGTAG, AppRTCAudioManager.class.getName() + ".stop()");
|
||||
ThreadUtils.checkIsOnMainThread();
|
||||
if (amState != AudioManagerState.RUNNING) {
|
||||
Log.e(Config.LOGTAG, "Trying to stop AudioManager in incorrect state: " + amState);
|
||||
|
@ -295,7 +289,7 @@ public class AppRTCAudioManager {
|
|||
// Restore previously stored audio states.
|
||||
setSpeakerphoneOn(savedIsSpeakerPhoneOn);
|
||||
setMicrophoneMute(savedIsMicrophoneMute);
|
||||
audioManager.setMode(savedAudioMode);
|
||||
audioManager.setMode(AudioManager.MODE_NORMAL);
|
||||
// Abandon audio focus. Gives the previous focus owner, if any, focus.
|
||||
audioManager.abandonAudioFocus(audioFocusChangeListener);
|
||||
audioFocusChangeListener = null;
|
||||
|
@ -305,7 +299,6 @@ public class AppRTCAudioManager {
|
|||
proximitySensor = null;
|
||||
}
|
||||
audioManagerEvents = null;
|
||||
Log.d(Config.LOGTAG, "AudioManager stopped");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -319,11 +312,7 @@ public class AppRTCAudioManager {
|
|||
setSpeakerphoneOn(true);
|
||||
break;
|
||||
case EARPIECE:
|
||||
setSpeakerphoneOn(false);
|
||||
break;
|
||||
case WIRED_HEADSET:
|
||||
setSpeakerphoneOn(false);
|
||||
break;
|
||||
case BLUETOOTH:
|
||||
setSpeakerphoneOn(false);
|
||||
break;
|
||||
|
|
Loading…
Add table
Reference in a new issue