fix(media): delay volume enforcement — VLC audio output not ready at playing event

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
nrobi144
2026-03-18 12:34:36 +02:00
parent 11b9fdad80
commit f0c80f3c7c
@@ -364,9 +364,16 @@ object GlobalMediaPlayer {
isBuffering = false, isBuffering = false,
duration = mediaPlayer.status().length(), duration = mediaPlayer.status().length(),
) )
// Enforce volume — VLC can reset it on new media // Enforce volume after a short delay — VLC's audio output
mediaPlayer.audio().setVolume(state.volume) // may not be ready immediately when the playing event fires
mediaPlayer.audio().isMute = state.isMuted scope.launch {
delay(100)
try {
mediaPlayer.audio().setVolume(state.volume)
mediaPlayer.audio().isMute = state.isMuted
} catch (_: Exception) {
}
}
} }
override fun paused(mediaPlayer: MediaPlayer) { override fun paused(mediaPlayer: MediaPlayer) {
@@ -424,9 +431,16 @@ object GlobalMediaPlayer {
isBuffering = false, isBuffering = false,
duration = mediaPlayer.status().length(), duration = mediaPlayer.status().length(),
) )
// Enforce volume — VLC can reset it on new media // Enforce volume after a short delay — VLC's audio output
mediaPlayer.audio().setVolume(state.volume) // may not be ready immediately when the playing event fires
mediaPlayer.audio().isMute = state.isMuted scope.launch {
delay(100)
try {
mediaPlayer.audio().setVolume(state.volume)
mediaPlayer.audio().isMute = state.isMuted
} catch (_: Exception) {
}
}
} }
override fun paused(mediaPlayer: MediaPlayer) { override fun paused(mediaPlayer: MediaPlayer) {