mirror of
https://github.com/yattee/yattee.git
synced 2025-08-06 10:44:06 +00:00
Add "Always use AVPlayer for live videos" option
This commit is contained in:
@@ -158,6 +158,7 @@ final class PlayerModel: ObservableObject {
|
||||
}}
|
||||
|
||||
@Default(.qualityProfiles) var qualityProfiles
|
||||
@Default(.forceAVPlayerForLiveStreams) var forceAVPlayerForLiveStreams
|
||||
@Default(.pauseOnHidingPlayer) private var pauseOnHidingPlayer
|
||||
@Default(.closePiPOnNavigation) var closePiPOnNavigation
|
||||
@Default(.closePiPOnOpeningPlayer) var closePiPOnOpeningPlayer
|
||||
@@ -344,9 +345,10 @@ final class PlayerModel: ObservableObject {
|
||||
|
||||
var changeBackendHandler: (() -> Void)?
|
||||
|
||||
if let backend = qualityProfile?.backend ?? QualityProfilesModel.shared.automaticProfile?.backend,
|
||||
activeBackend != backend,
|
||||
backend == .appleAVPlayer || !avPlayerBackend.startPictureInPictureOnPlay
|
||||
if let backend = (live && forceAVPlayerForLiveStreams) ? PlayerBackendType.appleAVPlayer :
|
||||
(qualityProfile?.backend ?? QualityProfilesModel.shared.automaticProfile?.backend),
|
||||
activeBackend != backend,
|
||||
backend == .appleAVPlayer || !avPlayerBackend.startPictureInPictureOnPlay
|
||||
{
|
||||
changeBackendHandler = { [weak self] in
|
||||
guard let self = self else { return }
|
||||
@@ -446,10 +448,11 @@ final class PlayerModel: ObservableObject {
|
||||
return
|
||||
}
|
||||
|
||||
if let qualityProfileBackend = qualityProfile?.backend, qualityProfileBackend != activeBackend,
|
||||
qualityProfileBackend == .appleAVPlayer || !(avPlayerBackend.startPictureInPictureOnPlay || playingInPictureInPicture)
|
||||
if let backend = (live && forceAVPlayerForLiveStreams) ? PlayerBackendType.appleAVPlayer : qualityProfile?.backend,
|
||||
backend != activeBackend,
|
||||
backend == .appleAVPlayer || !(avPlayerBackend.startPictureInPictureOnPlay || playingInPictureInPicture)
|
||||
{
|
||||
changeActiveBackend(from: activeBackend, to: qualityProfileBackend)
|
||||
changeActiveBackend(from: activeBackend, to: backend)
|
||||
}
|
||||
|
||||
guard let stream = streamByQualityProfile else {
|
||||
@@ -502,6 +505,8 @@ final class PlayerModel: ObservableObject {
|
||||
return
|
||||
}
|
||||
|
||||
logger.info("changing backend from \(from.rawValue) to \(to.rawValue)")
|
||||
|
||||
pause()
|
||||
|
||||
if to == .mpv {
|
||||
|
Reference in New Issue
Block a user