diff --git a/Model/Player/PlayerModel.swift b/Model/Player/PlayerModel.swift index 7464f6c9..aef8468a 100644 --- a/Model/Player/PlayerModel.swift +++ b/Model/Player/PlayerModel.swift @@ -387,7 +387,7 @@ final class PlayerModel: ObservableObject { if !upgrading, !video.isLocal { resetSegments() - DispatchQueue.main.async { [weak self] in + DispatchQueue.global(qos: .userInitiated).async { [weak self] in self?.sponsorBlock.loadSegments( videoID: video.videoID, categories: Defaults[.sponsorBlockCategories] @@ -407,15 +407,19 @@ final class PlayerModel: ObservableObject { resetSegments() } - (withBackend ?? backend).playStream( - stream, - of: video, - preservingTime: preservingTime, - upgrading: upgrading - ) + DispatchQueue.global(qos: .userInitiated).asyncAfter(deadline: .now() + 0.25) { + (withBackend ?? self.backend).playStream( + stream, + of: video, + preservingTime: preservingTime, + upgrading: upgrading + ) + } if !upgrading { - updateCurrentArtwork() + DispatchQueue.global(qos: .userInitiated).asyncAfter(deadline: .now() + 0.5) { + self.updateCurrentArtwork() + } } } diff --git a/Model/SponsorBlock/SponsorBlockAPI.swift b/Model/SponsorBlock/SponsorBlockAPI.swift index 971d8683..8dec2e68 100644 --- a/Model/SponsorBlock/SponsorBlockAPI.swift +++ b/Model/SponsorBlock/SponsorBlockAPI.swift @@ -75,7 +75,7 @@ final class SponsorBlockAPI: ObservableObject { self.videoID = videoID - DispatchQueue.main.async { [weak self] in + DispatchQueue.global(qos: .userInitiated).async { [weak self] in self?.requestSegments(categories: categories, completionHandler: completionHandler) } }