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:
+20
-6
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user