Force seek only on HLS

This commit is contained in:
Arkadiusz Fal 2022-08-20 23:25:06 +02:00
parent e54d3b811e
commit 24355f3a4b
2 changed files with 13 additions and 4 deletions

View File

@ -239,7 +239,7 @@ final class MPVBackend: PlayerBackend {
startPlaying() startPlaying()
} }
self.client.loadFile(url, sub: captions?.url, time: time) { [weak self] _ in self.client.loadFile(url, sub: captions?.url, time: time, forceSeekable: stream.kind == .hls) { [weak self] _ in
self?.isLoadingVideo = true self?.isLoadingVideo = true
} }
} else { } else {
@ -251,7 +251,7 @@ final class MPVBackend: PlayerBackend {
let fileToLoad = self.model.musicMode ? stream.audioAsset.url : stream.videoAsset.url let fileToLoad = self.model.musicMode ? stream.audioAsset.url : stream.videoAsset.url
let audioTrack = self.model.musicMode ? nil : stream.audioAsset.url let audioTrack = self.model.musicMode ? nil : stream.audioAsset.url
self.client?.loadFile(fileToLoad, audio: audioTrack, sub: captions?.url, time: time) { [weak self] _ in self.client?.loadFile(fileToLoad, audio: audioTrack, sub: captions?.url, time: time, forceSeekable: stream.kind == .hls) { [weak self] _ in
self?.isLoadingVideo = true self?.isLoadingVideo = true
self?.pause() self?.pause()
} }

View File

@ -123,7 +123,14 @@ final class MPVClient: ObservableObject {
} }
} }
func loadFile(_ url: URL, audio: URL? = nil, sub: URL? = nil, time: CMTime? = nil, completionHandler: ((Int32) -> Void)? = nil) { func loadFile(
_ url: URL,
audio: URL? = nil,
sub: URL? = nil,
time: CMTime? = nil,
forceSeekable: Bool = false,
completionHandler: ((Int32) -> Void)? = nil
) {
var args = [url.absoluteString] var args = [url.absoluteString]
var options = [String]() var options = [String]()
@ -140,7 +147,9 @@ final class MPVClient: ObservableObject {
options.append("sub-files-append=\"\(subURL)\"") options.append("sub-files-append=\"\(subURL)\"")
} }
if forceSeekable {
options.append("force-seekable=yes") options.append("force-seekable=yes")
}
if !options.isEmpty { if !options.isEmpty {
args.append(options.joined(separator: ",")) args.append(options.joined(separator: ","))