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:
+14
-2
@@ -154,6 +154,8 @@ object GlobalMediaPlayer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
player.media().play(url)
|
player.media().play(url)
|
||||||
|
// Set volume after play — VLC resets volume on new media
|
||||||
|
player.audio().setVolume(_videoState.value.volume)
|
||||||
startVideoPolling()
|
startVideoPolling()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -191,6 +193,8 @@ object GlobalMediaPlayer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
player.media().play(url)
|
player.media().play(url)
|
||||||
|
// Set volume after play — VLC resets volume on new media
|
||||||
|
player.audio().setVolume(_audioState.value.volume)
|
||||||
startAudioPolling()
|
startAudioPolling()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -353,12 +357,16 @@ object GlobalMediaPlayer {
|
|||||||
player.events().addMediaPlayerEventListener(
|
player.events().addMediaPlayerEventListener(
|
||||||
object : MediaPlayerEventAdapter() {
|
object : MediaPlayerEventAdapter() {
|
||||||
override fun playing(mediaPlayer: MediaPlayer) {
|
override fun playing(mediaPlayer: MediaPlayer) {
|
||||||
|
val state = _videoState.value
|
||||||
_videoState.value =
|
_videoState.value =
|
||||||
_videoState.value.copy(
|
state.copy(
|
||||||
isPlaying = true,
|
isPlaying = true,
|
||||||
isBuffering = false,
|
isBuffering = false,
|
||||||
duration = mediaPlayer.status().length(),
|
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) {
|
override fun paused(mediaPlayer: MediaPlayer) {
|
||||||
@@ -409,12 +417,16 @@ object GlobalMediaPlayer {
|
|||||||
player.events().addMediaPlayerEventListener(
|
player.events().addMediaPlayerEventListener(
|
||||||
object : MediaPlayerEventAdapter() {
|
object : MediaPlayerEventAdapter() {
|
||||||
override fun playing(mediaPlayer: MediaPlayer) {
|
override fun playing(mediaPlayer: MediaPlayer) {
|
||||||
|
val state = _audioState.value
|
||||||
_audioState.value =
|
_audioState.value =
|
||||||
_audioState.value.copy(
|
state.copy(
|
||||||
isPlaying = true,
|
isPlaying = true,
|
||||||
isBuffering = false,
|
isBuffering = false,
|
||||||
duration = mediaPlayer.status().length(),
|
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) {
|
override fun paused(mediaPlayer: MediaPlayer) {
|
||||||
|
|||||||
Reference in New Issue
Block a user