Extend available streams formats list to AVPlayer

This commit is contained in:
Arkadiusz Fal
2022-08-22 19:03:49 +02:00
parent 7b2dd75f2d
commit 256bbd52a7
3 changed files with 12 additions and 7 deletions

View File

@@ -83,13 +83,18 @@ final class AVPlayerBackend: PlayerBackend {
playerLayer.player = avPlayer
}
func bestPlayable(_ streams: [Stream], maxResolution _: ResolutionSetting) -> Stream? {
streams.first { $0.kind == .hls } ??
streams.max { $0.resolution < $1.resolution }
func bestPlayable(_ streams: [Stream], maxResolution: ResolutionSetting) -> Stream? {
let sortedByResolution = streams
.filter { ($0.kind == .adaptive || $0.kind == .stream) && $0.resolution <= maxResolution.value }
.sorted { $0.resolution > $1.resolution }
return streams.first { $0.kind == .hls } ??
sortedByResolution.first { $0.kind == .stream } ??
sortedByResolution.first
}
func canPlay(_ stream: Stream) -> Bool {
stream.kind == .hls || (stream.kind == .stream && stream.resolution.height <= 720)
stream.kind == .hls || stream.kind == .stream || (stream.kind == .adaptive && stream.format == .mp4)
}
func playStream(