diff --git a/Model/Player/Backends/AVPlayerBackend.swift b/Model/Player/Backends/AVPlayerBackend.swift index bba20062..3ffbbb6f 100644 --- a/Model/Player/Backends/AVPlayerBackend.swift +++ b/Model/Player/Backends/AVPlayerBackend.swift @@ -116,6 +116,10 @@ final class AVPlayerBackend: PlayerBackend { #endif } + deinit { + NotificationCenter.default.removeObserver(self, name: .getTimeUpdatesNotification, object: self.currentTime) + } + func bestPlayable(_ streams: [Stream], maxResolution: ResolutionSetting) -> Stream? { let sortedByResolution = streams .filter { ($0.kind == .adaptive || $0.kind == .stream) && $0.resolution <= maxResolution.value } @@ -596,6 +600,8 @@ final class AVPlayerBackend: PlayerBackend { if self.controlsUpdates { self.updateControls() } + + NotificationCenter.default.post(name: .getTimeUpdatesNotification, object: self.currentTime) } } diff --git a/Model/Player/Backends/MPVBackend.swift b/Model/Player/Backends/MPVBackend.swift index 09a5d05b..5de59b13 100644 --- a/Model/Player/Backends/MPVBackend.swift +++ b/Model/Player/Backends/MPVBackend.swift @@ -183,11 +183,17 @@ final class MPVBackend: PlayerBackend { init() { clientTimer = .init(interval: .seconds(Self.timeUpdateInterval), mode: .infinite) { [weak self] _ in - self?.getTimeUpdates() + guard let self = self, self.model.activeBackend == .mpv else { + return + } + self.getTimeUpdates() } networkStateTimer = .init(interval: .seconds(Self.networkStateUpdateInterval), mode: .infinite) { [weak self] _ in - self?.updateNetworkState() + guard let self = self, self.model.activeBackend == .mpv else { + return + } + self.updateNetworkState() } } @@ -624,7 +630,3 @@ final class MPVBackend: PlayerBackend { } } } - -extension Notification.Name { - static let getTimeUpdatesNotification = Notification.Name("getTimeUpdatesNotification") -} diff --git a/Model/Player/Backends/PlayerBackend.swift b/Model/Player/Backends/PlayerBackend.swift index 3b09e957..45348a0b 100644 --- a/Model/Player/Backends/PlayerBackend.swift +++ b/Model/Player/Backends/PlayerBackend.swift @@ -154,3 +154,7 @@ extension PlayerBackend { } } } + +extension Notification.Name { + static let getTimeUpdatesNotification = Notification.Name("getTimeUpdatesNotification") +}