fix(media): enforce volume on playback start — VLC resets volume on new media

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
nrobi144
2026-03-18 12:30:57 +02:00
parent 2a6087af27
commit 11b9fdad80
@@ -154,6 +154,8 @@ object GlobalMediaPlayer {
}
player.media().play(url)
// Set volume after play — VLC resets volume on new media
player.audio().setVolume(_videoState.value.volume)
startVideoPolling()
}
}
@@ -191,6 +193,8 @@ object GlobalMediaPlayer {
}
player.media().play(url)
// Set volume after play — VLC resets volume on new media
player.audio().setVolume(_audioState.value.volume)
startAudioPolling()
}
}
@@ -353,12 +357,16 @@ object GlobalMediaPlayer {
player.events().addMediaPlayerEventListener(
object : MediaPlayerEventAdapter() {
override fun playing(mediaPlayer: MediaPlayer) {
val state = _videoState.value
_videoState.value =
_videoState.value.copy(
state.copy(
isPlaying = true,
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
}
override fun paused(mediaPlayer: MediaPlayer) {
@@ -409,12 +417,16 @@ object GlobalMediaPlayer {
player.events().addMediaPlayerEventListener(
object : MediaPlayerEventAdapter() {
override fun playing(mediaPlayer: MediaPlayer) {
val state = _audioState.value
_audioState.value =
_audioState.value.copy(
state.copy(
isPlaying = true,
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
}
override fun paused(mediaPlayer: MediaPlayer) {