diff --git a/src/cheogram/java/com/cheogram/android/ConnectionService.java b/src/cheogram/java/com/cheogram/android/ConnectionService.java index 2572477b908f84f3a3ab5d6fa8f1e352fcd77297..97f9a84adb673079a742ca95bee5572bbabd3b67 100644 --- a/src/cheogram/java/com/cheogram/android/ConnectionService.java +++ b/src/cheogram/java/com/cheogram/android/ConnectionService.java @@ -282,12 +282,16 @@ public class ConnectionService extends android.telecom.ConnectionService { switch(selectedAudioDevice) { case SPEAKER_PHONE: setAudioRoute(CallAudioState.ROUTE_SPEAKER); + break; case WIRED_HEADSET: setAudioRoute(CallAudioState.ROUTE_WIRED_HEADSET); + break; case EARPIECE: setAudioRoute(CallAudioState.ROUTE_EARPIECE); + break; case BLUETOOTH: setAudioRoute(CallAudioState.ROUTE_BLUETOOTH); + break; default: setAudioRoute(CallAudioState.ROUTE_WIRED_OR_EARPIECE); } @@ -301,6 +305,23 @@ public class ConnectionService extends android.telecom.ConnectionService { return; } + switch(state.getRoute()) { + case CallAudioState.ROUTE_SPEAKER: + rtpConnection.get().getAudioManager().setDefaultAudioDevice(AppRTCAudioManager.AudioDevice.SPEAKER_PHONE); + break; + case CallAudioState.ROUTE_WIRED_HEADSET: + rtpConnection.get().getAudioManager().setDefaultAudioDevice(AppRTCAudioManager.AudioDevice.WIRED_HEADSET); + break; + case CallAudioState.ROUTE_EARPIECE: + rtpConnection.get().getAudioManager().setDefaultAudioDevice(AppRTCAudioManager.AudioDevice.EARPIECE); + break; + case CallAudioState.ROUTE_BLUETOOTH: + rtpConnection.get().getAudioManager().setDefaultAudioDevice(AppRTCAudioManager.AudioDevice.BLUETOOTH); + break; + default: + rtpConnection.get().getAudioManager().setDefaultAudioDevice(AppRTCAudioManager.AudioDevice.NONE); + } + try { rtpConnection.get().setMicrophoneEnabled(!state.isMuted()); } catch (final IllegalStateException e) {