Improve resolution switching

This commit is contained in:
Arkadiusz Fal
2021-06-15 18:35:21 +02:00
parent 4535853ac3
commit da22b06cc1
9 changed files with 253 additions and 82 deletions

View File

@@ -95,6 +95,10 @@ final class Video: Identifiable, ObservableObject {
selectableStreams.first { $0.type == .stream }
}
var bestStream: Stream? {
selectableStreams.min { $0.resolution > $1.resolution }
}
private func extractThumbnailURL(from details: JSON) -> URL? {
if details["videoThumbnails"].arrayValue.isEmpty {
return nil
@@ -106,8 +110,8 @@ final class Video: Identifiable, ObservableObject {
private func extractFormatStreams(from streams: [JSON]) -> [Stream] {
streams.map {
MuxedStream(
muxedAsset: AVURLAsset(url: DataProvider.proxyURLForAsset($0["url"].stringValue)!),
AudioVideoStream(
avAsset: AVURLAsset(url: DataProvider.proxyURLForAsset($0["url"].stringValue)!),
resolution: StreamResolution.from(resolution: $0["resolution"].stringValue)!,
type: .stream,
encoding: $0["encoding"].stringValue