diff --git a/src/main/java/eu/siacs/conversations/services/AppRTCAudioManager.java b/src/main/java/eu/siacs/conversations/services/AppRTCAudioManager.java index d9eaeee48..0aa0c0cd0 100644 --- a/src/main/java/eu/siacs/conversations/services/AppRTCAudioManager.java +++ b/src/main/java/eu/siacs/conversations/services/AppRTCAudioManager.java @@ -466,7 +466,7 @@ public class AppRTCAudioManager { final var toneGenerator = new ToneGenerator( AudioManager.STREAM_MUSIC, - CallIntegration.DEFAULT_VOLUME); + CallIntegration.DEFAULT_TONE_VOLUME); toneGenerator.startTone(ToneGenerator.TONE_CDMA_DIAL_TONE_LITE, 750); }, 0, diff --git a/src/main/java/eu/siacs/conversations/services/CallIntegration.java b/src/main/java/eu/siacs/conversations/services/CallIntegration.java index 67ea605f5..93b25e25f 100644 --- a/src/main/java/eu/siacs/conversations/services/CallIntegration.java +++ b/src/main/java/eu/siacs/conversations/services/CallIntegration.java @@ -2,6 +2,7 @@ package eu.siacs.conversations.services; import android.content.Context; import android.content.pm.PackageManager; +import android.media.AudioAttributes; import android.media.AudioManager; import android.media.ToneGenerator; import android.net.Uri; @@ -35,7 +36,8 @@ import java.util.concurrent.atomic.AtomicBoolean; public class CallIntegration extends Connection { - public static final int DEFAULT_VOLUME = 80; + public static final int DEFAULT_TONE_VOLUME = 60; + private static final int DEFAULT_MEDIA_PLAYER_VOLUME = 90; private final Context context; @@ -338,14 +340,25 @@ public class CallIntegration extends Connection { } private void playConnectedSound() { - final var mediaPlayer = MediaPlayer.create(context, R.raw.connected); - mediaPlayer.setVolume(DEFAULT_VOLUME / 100f, DEFAULT_VOLUME / 100f); + final var audioAttributes = + new AudioAttributes.Builder() + .setLegacyStreamType(AudioManager.STREAM_VOICE_CALL) + .build(); + final var mediaPlayer = + MediaPlayer.create( + context, + R.raw.connected, + audioAttributes, + AudioManager.AUDIO_SESSION_ID_GENERATE); + mediaPlayer.setVolume( + DEFAULT_MEDIA_PLAYER_VOLUME / 100f, DEFAULT_MEDIA_PLAYER_VOLUME / 100f); mediaPlayer.start(); } public void success() { Log.d(Config.LOGTAG, "CallIntegration.success()"); - final var toneGenerator = new ToneGenerator(AudioManager.STREAM_MUSIC, DEFAULT_VOLUME); + final var toneGenerator = + new ToneGenerator(AudioManager.STREAM_VOICE_CALL, DEFAULT_TONE_VOLUME); toneGenerator.startTone(ToneGenerator.TONE_CDMA_CALLDROP_LITE, 375); this.destroyWithDelay(new DisconnectCause(DisconnectCause.LOCAL, null), 375); } @@ -361,7 +374,8 @@ public class CallIntegration extends Connection { public void error() { Log.d(Config.LOGTAG, "CallIntegration.error()"); - final var toneGenerator = new ToneGenerator(AudioManager.STREAM_MUSIC, DEFAULT_VOLUME); + final var toneGenerator = + new ToneGenerator(AudioManager.STREAM_VOICE_CALL, DEFAULT_TONE_VOLUME); toneGenerator.startTone(ToneGenerator.TONE_CDMA_CALLDROP_LITE, 375); this.destroyWithDelay(new DisconnectCause(DisconnectCause.ERROR, null), 375); } @@ -379,7 +393,7 @@ public class CallIntegration extends Connection { public void busy() { Log.d(Config.LOGTAG, "CallIntegration.busy()"); - final var toneGenerator = new ToneGenerator(AudioManager.STREAM_MUSIC, 80); + final var toneGenerator = new ToneGenerator(AudioManager.STREAM_VOICE_CALL, 80); toneGenerator.startTone(ToneGenerator.TONE_CDMA_NETWORK_BUSY, 2500); this.destroyWithDelay(new DisconnectCause(DisconnectCause.BUSY, null), 2500); }