Apply the ringer volume to the join/hangup sounds with 15% minimum.

fork-5.53.8
Alan Evans 2021-06-25 16:46:59 -03:00 zatwierdzone przez GitHub
rodzic 01047f0546
commit 3d2a634aac
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
1 zmienionych plików z 19 dodań i 2 usunięć

Wyświetl plik

@ -79,7 +79,8 @@ public class SignalAudioManager {
audioManager.setSpeakerphoneOn(false);
}
soundPool.play(connectedSoundId, 1.0f, 1.0f, 0, 0, 1.0f);
float volume = ringVolumeWithMinimum(audioManager);
soundPool.play(connectedSoundId, volume, volume, 0, 0, 1.0f);
}
public void stop(boolean playDisconnected) {
@ -89,11 +90,27 @@ public class SignalAudioManager {
outgoingRinger.stop();
if (playDisconnected) {
soundPool.play(disconnectedSoundId, 1.0f, 1.0f, 0, 0, 1.0f);
float volume = ringVolumeWithMinimum(audioManager);
soundPool.play(disconnectedSoundId, volume, volume, 0, 0, 1.0f);
}
audioManager.setMode(AudioManager.MODE_NORMAL);
audioManagerCompat.abandonCallAudioFocus();
}
private static float ringVolumeWithMinimum(@NonNull AudioManager audioManager) {
int currentVolume = audioManager.getStreamVolume(AudioManager.STREAM_RING);
int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_RING);
float volume = logVolume(currentVolume, maxVolume);
float minVolume = logVolume(15, 100);
return Math.max(volume, minVolume);
}
private static float logVolume(int volume, int maxVolume) {
if (maxVolume == 0 || volume > maxVolume) {
return 0.5f;
}
return (float) (1 - (Math.log(maxVolume + 1 - volume) / Math.log(maxVolume + 1)));
}
}