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,
duration = mediaPlayer.status().length(),
)
// Enforce volume — VLC can reset it on new media
mediaPlayer.audio().setVolume(state.volume)
mediaPlayer.audio().isMute = state.isMuted
// Enforce volume after a short delay — VLC's audio output
// may not be ready immediately when the playing event fires
scope.launch {
delay(100)
try {
mediaPlayer.audio().setVolume(state.volume)
mediaPlayer.audio().isMute = state.isMuted
} catch (_: Exception) {
}
}
}
override fun paused(mediaPlayer: MediaPlayer) {
@@ -424,9 +431,16 @@ object GlobalMediaPlayer {
isBuffering = false,
duration = mediaPlayer.status().length(),
)
// Enforce volume — VLC can reset it on new media
mediaPlayer.audio().setVolume(state.volume)
mediaPlayer.audio().isMute = state.isMuted
// Enforce volume after a short delay — VLC's audio output
// may not be ready immediately when the playing event fires
scope.launch {
delay(100)
try {
mediaPlayer.audio().setVolume(state.volume)
mediaPlayer.audio().isMute = state.isMuted
} catch (_: Exception) {
}
}
}
override fun paused(mediaPlayer: MediaPlayer) {