Add switch to disable volume normalization

This commit is contained in:
vfsfitvnm
2022-06-21 23:08:39 +02:00
parent 97cd23c991
commit 1ff666dd12
3 changed files with 20 additions and 18 deletions

View File

@@ -304,15 +304,17 @@ class PlayerService : MediaSessionService(), MediaSession.Callback, MediaNotific
}
private fun normalizeVolume() {
player.volume = player.currentMediaItem?.mediaId?.let { mediaId ->
songPendingLoudnessDb.getOrElse(mediaId) {
player.currentMediaItem?.mediaMetadata?.extras?.getFloat("loudnessDb")
}
?.takeIf { it > 0 }
?.let { loudnessDb ->
(1f - (0.01f + loudnessDb / 15)).coerceIn(0.1f, 1f)
if (preferences.volumeNormalization) {
player.volume = player.currentMediaItem?.mediaId?.let { mediaId ->
songPendingLoudnessDb.getOrElse(mediaId) {
player.currentMediaItem?.mediaMetadata?.extras?.getFloat("loudnessDb")
}
} ?: 1f
?.takeIf { it > 0 }
?.let { loudnessDb ->
(1f - (0.01f + loudnessDb / 15)).coerceIn(0.1f, 1f)
}
} ?: 1f
}
}
override fun onAddMediaItems(

View File

@@ -248,16 +248,6 @@ fun PlayerSettingsScreen() {
)
}
// SwitchSettingEntry(
// title = "Persistent queue",
// text = "Save and restore playing songs",
// isChecked = preferences.persistentQueue,
// onCheckedChange = {
// preferences.persistentQueue = it
// },
// isEnabled = false
// )
SwitchSettingEntry(
title = "Skip silence",
text = "Skip silent parts during playback",
@@ -271,6 +261,15 @@ fun PlayerSettingsScreen() {
}
)
SwitchSettingEntry(
title = "Loudness normalization",
text = "Lower the volume to a standard level",
isChecked = preferences.volumeNormalization,
onCheckedChange = {
preferences.volumeNormalization = it
}
)
SettingsEntry(
title = "Equalizer",
text = "Interact with the system equalizer",

View File

@@ -25,6 +25,7 @@ class Preferences(holder: SharedPreferences) : SharedPreferences by holder {
var coilDiskCacheMaxSizeBytes by preference("coilDiskCacheMaxSizeBytes", 512L * 1024 * 1024)
var exoPlayerDiskCacheMaxSizeBytes by preference("exoPlayerDiskCacheMaxSizeBytes", 512L * 1024 * 1024)
var skipSilence by preference("skipSilence", false)
var volumeNormalization by preference("volumeNormalization", true)
var yourPlaylistsGridRowCount by preference("yourPlaylistsGridRowCount", 2)
}