From 4154008f39f183e660a55a4cace066b41f9f8f67 Mon Sep 17 00:00:00 2001 From: Raffi Date: Thu, 15 Jan 2026 13:05:37 +0100 Subject: [PATCH] add os check --- .../AVSubtitlesLoader.swift | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Code/Sideloaded-TextTracks/Sources/THEOplayerConnectorSideloadedSubtitle/AVSubtitlesLoader.swift b/Code/Sideloaded-TextTracks/Sources/THEOplayerConnectorSideloadedSubtitle/AVSubtitlesLoader.swift index ecc75f7a..44d6e6fb 100644 --- a/Code/Sideloaded-TextTracks/Sources/THEOplayerConnectorSideloadedSubtitle/AVSubtitlesLoader.swift +++ b/Code/Sideloaded-TextTracks/Sources/THEOplayerConnectorSideloadedSubtitle/AVSubtitlesLoader.swift @@ -22,7 +22,7 @@ class AVSubtitlesLoader: NSObject { private let _id: String private var variantTotalDuration: Double = 0 - init(subtitles: [TextTrackDescription], id: String, player: THEOplayer? = nil, cachingTask: CachingTask? = nil) { + init(subtitles: [TextTrackDescription], id: String, player: THEOplayer? = nil) { self.subtitles = subtitles self._id = id self.synchronizer = SubtitlesSynchronizer(player: player) @@ -31,8 +31,15 @@ class AVSubtitlesLoader: NSObject { super.init() _ = player?.addEventListener(type: PlayerEventTypes.DESTROY, listener: { [weak self] destroyEvent in self?.handleDestroyEvent() }) + } + + #if os(iOS) + convenience init(subtitles: [TextTrackDescription], id: String, cachingTask: CachingTask? = nil) { + self.init(subtitles: subtitles, id: id, player: nil) + _ = cachingTask?.addEventListener(type: CachingTaskEventTypes.STATE_CHANGE, listener: { [weak self] cachingTaskStateChangeEvent in self?.handleCachingTaskStateChangeEvent(task: cachingTask) }) } + #endif func handleMasterManifestRequest(_ url: URL) async -> Data? { let parser = MasterPlaylistParser(url: url) @@ -115,11 +122,13 @@ class AVSubtitlesLoader: NSObject { Self.removeInstance(by: _id) } + #if os(iOS) private func handleCachingTaskStateChangeEvent(task: CachingTask?) { guard let task, task.status == .evicted else { return } Self.removeInstance(by: task.id) } + #endif } enum URLScheme: String {