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()
}
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
}
} else {
@ -251,7 +251,7 @@ final class MPVBackend: PlayerBackend {
let fileToLoad = self.model.musicMode ? stream.audioAsset.url : stream.videoAsset.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?.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 options = [String]()
@ -140,7 +147,9 @@ final class MPVClient: ObservableObject {
options.append("sub-files-append=\"\(subURL)\"")
}
if forceSeekable {
options.append("force-seekable=yes")
}
if !options.isEmpty {
args.append(options.joined(separator: ","))