Opening videos by URL and local files

This commit is contained in:
Arkadiusz Fal
2022-11-10 18:11:28 +01:00
parent 34f7621f36
commit 402d1a2f79
40 changed files with 1158 additions and 126 deletions

View File

@@ -25,7 +25,13 @@ struct PlayerQueueItemBridge: Defaults.Bridge {
}
}
var localURL = ""
if let video = value.video, video.isLocal {
localURL = video.localStream?.localURL.absoluteString ?? ""
}
return [
"localURL": localURL,
"videoID": value.videoID,
"playbackTime": playbackTime,
"videoDuration": videoDuration
@@ -33,12 +39,7 @@ struct PlayerQueueItemBridge: Defaults.Bridge {
}
func deserialize(_ object: Serializable?) -> Value? {
guard
let object,
let videoID = object["videoID"]
else {
return nil
}
guard let object else { return nil }
var playbackTime: CMTime?
var videoDuration: TimeInterval?
@@ -56,6 +57,19 @@ struct PlayerQueueItemBridge: Defaults.Bridge {
videoDuration = TimeInterval(duration)
}
if let localUrlString = object["localURL"],
!localUrlString.isEmpty,
let localURL = URL(string: localUrlString)
{
return PlayerQueueItem(
.local(localURL),
playbackTime: playbackTime,
videoDuration: videoDuration
)
}
guard let videoID = object["videoID"] else { return nil }
return PlayerQueueItem(
videoID: videoID,
playbackTime: playbackTime,