Add advanced setting "Show video context menu options to force selected backend"

This commit is contained in:
Arkadiusz Fal
2023-05-26 22:49:38 +02:00
parent e5f137a2d2
commit 562df2d9ba
4 changed files with 40 additions and 1 deletions

View File

@@ -55,6 +55,7 @@ final class PlayerModel: ObservableObject {
@Published var presentingPlayer = false { didSet { handlePresentationChange() } }
@Published var activeBackend = PlayerBackendType.mpv
@Published var forceBackendOnPlay: PlayerBackendType?
var avPlayerBackend = AVPlayerBackend()
var mpvBackend = MPVBackend()
@@ -416,6 +417,10 @@ final class PlayerModel: ObservableObject {
)
}
DispatchQueue.main.async {
self.forceBackendOnPlay = nil
}
if !upgrading {
DispatchQueue.global(qos: .userInitiated).asyncAfter(deadline: .now() + 0.5) {
self.updateCurrentArtwork()
@@ -452,7 +457,7 @@ final class PlayerModel: ObservableObject {
return
}
if let backend = (live && forceAVPlayerForLiveStreams) ? PlayerBackendType.appleAVPlayer : qualityProfile?.backend,
if let backend = forceBackendOnPlay ?? ((live && forceAVPlayerForLiveStreams) ? PlayerBackendType.appleAVPlayer : qualityProfile?.backend),
backend != activeBackend,
backend == .appleAVPlayer || !(avPlayerBackend.startPictureInPictureOnPlay || playingInPictureInPicture)
{
@@ -621,6 +626,7 @@ final class PlayerModel: ObservableObject {
func closeCurrentItem(finished: Bool = false) {
pause()
videoBeingOpened = nil
forceBackendOnPlay = nil
closing = true
controls.presentingControls = false