diff --git a/Model/Player/Backends/MPVBackend.swift b/Model/Player/Backends/MPVBackend.swift index 7954a83f..fa2e4bb8 100644 --- a/Model/Player/Backends/MPVBackend.swift +++ b/Model/Player/Backends/MPVBackend.swift @@ -222,7 +222,9 @@ final class MPVBackend: PlayerBackend { func playStream(_ stream: Stream, of video: Video, preservingTime: Bool, upgrading: Bool) { #if !os(macOS) if model.presentingPlayer { - UIApplication.shared.isIdleTimerDisabled = true + DispatchQueue.main.async { + UIApplication.shared.isIdleTimerDisabled = true + } } #endif diff --git a/Model/Player/PlayerModel.swift b/Model/Player/PlayerModel.swift index 2d6e6625..bb1e1fc3 100644 --- a/Model/Player/PlayerModel.swift +++ b/Model/Player/PlayerModel.swift @@ -459,12 +459,16 @@ final class PlayerModel: ObservableObject { return } - streamSelection = stream - playStream( - stream, - of: currentVideo, - preservingTime: !currentItem.playbackTime.isNil - ) + DispatchQueue.global(qos: .userInitiated).async { + DispatchQueue.main.async { + self.streamSelection = stream + } + self.playStream( + stream, + of: currentVideo, + preservingTime: !self.currentItem.playbackTime.isNil + ) + } } private func handlePresentationChange() { diff --git a/Model/Player/PlayerSponsorBlock.swift b/Model/Player/PlayerSponsorBlock.swift index c92c6ff8..5c5976a0 100644 --- a/Model/Player/PlayerSponsorBlock.swift +++ b/Model/Player/PlayerSponsorBlock.swift @@ -95,6 +95,8 @@ extension PlayerModel { func resetSegments() { resetLastSegment() - restoredSegments = [] + DispatchQueue.main.async { [weak self] in + self?.restoredSegments = [] + } } }