mirror of
https://github.com/JustinZeus/Wholphin.git
synced 2026-07-09 08:01:20 +02:00
Fixes MPV crash when playing next up (#772)
## Description Ensure that MPV is always destroyed before being initialized again. Also, now creating a new player is only done when switching backends which means faster, more efficient playing the next up. ### Related issues Fixes #766
This commit is contained in:
parent
7b8f5c3e63
commit
03871579f5
3 changed files with 29 additions and 28 deletions
|
|
@ -219,18 +219,22 @@ class PlaybackViewModel
|
|||
PlayerBackend.PREFER_MPV -> if (isHdr) PlayerBackend.EXO_PLAYER else PlayerBackend.MPV
|
||||
}
|
||||
|
||||
Timber.i("Selected backend: %s", playerBackend)
|
||||
withContext(Dispatchers.Main) {
|
||||
disconnectPlayer()
|
||||
}
|
||||
Timber.d("Selected backend: %s", playerBackend)
|
||||
if (currentPlayer.value?.backend != playerBackend) {
|
||||
Timber.i("Switching player backend to %s", playerBackend)
|
||||
withContext(Dispatchers.Main) {
|
||||
disconnectPlayer()
|
||||
}
|
||||
|
||||
player =
|
||||
playerFactory.createVideoPlayer(
|
||||
playerBackend,
|
||||
preferences.appPreferences.playbackPreferences,
|
||||
)
|
||||
currentPlayer.update {
|
||||
PlayerState(player, playerBackend)
|
||||
player =
|
||||
playerFactory.createVideoPlayer(
|
||||
playerBackend,
|
||||
preferences.appPreferences.playbackPreferences,
|
||||
)
|
||||
currentPlayer.update {
|
||||
PlayerState(player, playerBackend)
|
||||
}
|
||||
configurePlayer()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -429,7 +433,6 @@ class PlaybackViewModel
|
|||
|
||||
// Create the correct player for the media
|
||||
createPlayer(videoStream?.hdr == true)
|
||||
configurePlayer()
|
||||
|
||||
val subtitleStreams =
|
||||
mediaSource.mediaStreams
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue