diff --git a/BilibiliLive/Component/Player/BilibiliVideoResourceLoaderDelegate.swift b/BilibiliLive/Component/Player/BilibiliVideoResourceLoaderDelegate.swift index 85b9036..debe39d 100644 --- a/BilibiliLive/Component/Player/BilibiliVideoResourceLoaderDelegate.swift +++ b/BilibiliLive/Component/Player/BilibiliVideoResourceLoaderDelegate.swift @@ -286,7 +286,9 @@ class BilibiliVideoResourceLoaderDelegate: NSObject, AVAssetResourceLoaderDelega httpPort = (try? httpServer.port()) ?? 0 } for subtitle in subtitles { - addSubtitleData(lang: subtitle.lan, name: subtitle.lan_doc, duration: info.dash.duration, url: subtitle.url.absoluteString) + if let url = subtitle.url { + addSubtitleData(lang: subtitle.lan, name: subtitle.lan_doc, duration: info.dash.duration, url: url.absoluteString) + } } // i-frame diff --git a/BilibiliLive/Request/WebRequest.swift b/BilibiliLive/Request/WebRequest.swift index 67956ac..b4be79e 100644 --- a/BilibiliLive/Request/WebRequest.swift +++ b/BilibiliLive/Request/WebRequest.swift @@ -691,10 +691,16 @@ struct SubtitleResp: Codable { struct SubtitleData: Codable, Hashable { let lan_doc: String - let subtitle_url: URL + let subtitle_url: String? let lan: String - var url: URL { subtitle_url.addSchemeIfNeed() } + var url: URL? { + if let subtitle_url, let sub_url = URL(string: subtitle_url) { + return sub_url.addSchemeIfNeed() + } + return nil + } + var subtitleContents: [SubtitleContent]? }