Improve loudnessDb handling
This commit is contained in:
parent
664e08831a
commit
b579b23acb
2 changed files with 20 additions and 16 deletions
|
@ -169,9 +169,9 @@ class PlayerService : Service(), Player.Listener, PlaybackStatsListener.Callback
|
||||||
|
|
||||||
private fun normalizeVolume() {
|
private fun normalizeVolume() {
|
||||||
if (preferences.volumeNormalization) {
|
if (preferences.volumeNormalization) {
|
||||||
player.volume = player.currentMediaItem?.mediaId?.let { mediaId ->
|
player.volume = player.currentMediaItem?.let { mediaItem ->
|
||||||
songPendingLoudnessDb.getOrElse(mediaId) {
|
songPendingLoudnessDb.getOrElse(mediaItem.mediaId) {
|
||||||
player.currentMediaItem?.mediaMetadata?.extras?.getFloat("loudnessDb")
|
mediaItem.mediaMetadata.extras?.getFloat("loudnessDb")
|
||||||
}?.takeIf { it > 0 }?.let { loudnessDb ->
|
}?.takeIf { it > 0 }?.let { loudnessDb ->
|
||||||
(1f - (0.01f + loudnessDb / 14)).coerceIn(0.1f, 1f)
|
(1f - (0.01f + loudnessDb / 14)).coerceIn(0.1f, 1f)
|
||||||
}
|
}
|
||||||
|
@ -365,17 +365,22 @@ class PlayerService : Service(), Player.Listener, PlaybackStatsListener.Callback
|
||||||
format.itag == 251 || format.itag == 140
|
format.itag == 251 || format.itag == 140
|
||||||
}?.let { format ->
|
}?.let { format ->
|
||||||
val mediaItem = runBlocking(Dispatchers.Main) {
|
val mediaItem = runBlocking(Dispatchers.Main) {
|
||||||
player.currentMediaItem
|
player.findNextMediaItemById(videoId)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mediaItem?.mediaId == videoId) {
|
loudnessDb?.let { loudnessDb ->
|
||||||
|
mediaItem?.mediaMetadata?.extras
|
||||||
|
?.putFloat("loudnessDb", loudnessDb)
|
||||||
|
}
|
||||||
|
|
||||||
|
format.contentLength?.let { contentLength ->
|
||||||
|
mediaItem?.mediaMetadata?.extras
|
||||||
|
?.putLong("contentLength", contentLength)
|
||||||
|
}
|
||||||
|
|
||||||
|
mediaItem?.let {
|
||||||
Database.internal.queryExecutor.execute {
|
Database.internal.queryExecutor.execute {
|
||||||
Database.update(
|
Database.insert(it)
|
||||||
Database.insert(mediaItem).copy(
|
|
||||||
loudnessDb = loudnessDb,
|
|
||||||
contentLength = format.contentLength
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,10 +9,7 @@ import androidx.media3.common.MediaItem
|
||||||
import androidx.media3.common.MediaMetadata
|
import androidx.media3.common.MediaMetadata
|
||||||
import it.vfsfitvnm.vimusic.Database
|
import it.vfsfitvnm.vimusic.Database
|
||||||
import it.vfsfitvnm.vimusic.internal
|
import it.vfsfitvnm.vimusic.internal
|
||||||
import it.vfsfitvnm.vimusic.models.Info
|
import it.vfsfitvnm.vimusic.models.*
|
||||||
import it.vfsfitvnm.vimusic.models.Song
|
|
||||||
import it.vfsfitvnm.vimusic.models.SongWithAuthors
|
|
||||||
import it.vfsfitvnm.vimusic.models.SongWithInfo
|
|
||||||
import it.vfsfitvnm.youtubemusic.YouTube
|
import it.vfsfitvnm.youtubemusic.YouTube
|
||||||
|
|
||||||
fun Context.shareAsYouTubeSong(mediaItem: MediaItem) {
|
fun Context.shareAsYouTubeSong(mediaItem: MediaItem) {
|
||||||
|
@ -57,7 +54,9 @@ fun Database.insert(mediaItem: MediaItem): Song {
|
||||||
title = mediaItem.mediaMetadata.title!!.toString(),
|
title = mediaItem.mediaMetadata.title!!.toString(),
|
||||||
albumInfoId = albumInfoId,
|
albumInfoId = albumInfoId,
|
||||||
durationText = mediaItem.mediaMetadata.extras?.getString("durationText")!!,
|
durationText = mediaItem.mediaMetadata.extras?.getString("durationText")!!,
|
||||||
thumbnailUrl = mediaItem.mediaMetadata.artworkUri!!.toString()
|
thumbnailUrl = mediaItem.mediaMetadata.artworkUri!!.toString(),
|
||||||
|
loudnessDb = mediaItem.mediaMetadata.extras?.getFloat("loudnessDb"),
|
||||||
|
contentLength = mediaItem.mediaMetadata.extras?.getLong("contentLength"),
|
||||||
)
|
)
|
||||||
|
|
||||||
insert(song)
|
insert(song)
|
||||||
|
|
Loading…
Add table
Reference in a new issue