Я загружаю клипы mp4 из манифеста M3U8, который может содержать около 700 клипов. Все отлично работает, чтобы загрузить их, но что было бы лучше, чтобы проверить, что отдельные загрузки завершены? Когда все клипы загружены, я объединяю их в один, но мне нужно знать, когда все мои клипы были загружены первыми.
Это фрагмент кода, который я использую для загрузки видеоклипа.
func download(video: String){
DispatchQueue.global(qos: .background).async {
if let url = URL(string: "http://SERVER/storage/sessions/SESSIONID/mp4_segments/\(video)"),
let urlData = NSData(contentsOf: url) {
let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0];
let fileName = video
let filePath = "\(documentsPath)/SegmentVideos/\(fileName)"
urlData.write(toFile: filePath, atomically: true)
}
}
}
Это фрагмент кода, который читает файл M3U8 и разбивает его, чтобы я мог получить название видеоклипа.
func checkM3U8forClips(){
guard let url = url else {return}
do {
let contents = try String(contentsOf: url)
let splitContent = contents.components(separatedBy: "\n")
for split in splitContent {
if split.hasSuffix("mp4") {
download(video: split)
}
}
} catch {
print("error with mp4 segments: \(error.localizedDescription)")
}
}