Minor tvOS fixes

This commit is contained in:
Arkadiusz Fal
2021-10-22 17:00:09 +02:00
parent 0e54cbcad0
commit bc065e282a
6 changed files with 25 additions and 17 deletions

View File

@@ -255,14 +255,18 @@ final class InvidiousAPI: Service, ObservableObject, VideosAPI {
return searchQuery
}
static func assetURLFrom(instance: Instance, url: URL) -> URL? {
static func proxiedAsset(instance: Instance, asset: AVURLAsset) -> AVURLAsset? {
guard let instanceURLComponents = URLComponents(string: instance.url),
var urlComponents = URLComponents(url: url, resolvingAgainstBaseURL: false) else { return nil }
var urlComponents = URLComponents(url: asset.url, resolvingAgainstBaseURL: false) else { return nil }
urlComponents.scheme = instanceURLComponents.scheme
urlComponents.host = instanceURLComponents.host
return urlComponents.url
guard let url = urlComponents.url else {
return nil
}
return AVURLAsset(url: url)
}
static func extractVideo(_ json: JSON) -> Video {

View File

@@ -1,7 +1,6 @@
import Foundation
import Siesta
import SwiftUI
import AVFoundation
extension PlayerModel {
var isLoadingAvailableStreams: Bool {
@@ -104,10 +103,10 @@ extension PlayerModel {
stream.instance = instance
if instance.app == .invidious {
stream.audioAsset = AVURLAsset(url: InvidiousAPI.assetURLFrom(instance: instance, url: stream.audioAsset.url)!)
stream.videoAsset = AVURLAsset(url: InvidiousAPI.assetURLFrom(instance: instance, url: stream.videoAsset.url)!)
stream.audioAsset = InvidiousAPI.proxiedAsset(instance: instance, asset: stream.audioAsset)
stream.videoAsset = InvidiousAPI.proxiedAsset(instance: instance, asset: stream.videoAsset)
}
return stream
}
}