При загрузке видео вы получаете видео, сохраненное во временный путь.После завершения загрузки переместите видео с временного пути в каталог вашего приложения. отметьте здесь
Он использовал этот код для загрузки видео, он прекрасно работает для меня
Вам просто нужно передать ссылку на видео в функции.Я использовал форматировщик даты для обозначения видео, загруженного с сервера.Потому что после загрузки первого видео ваше старое видео будет заменено, если вы не использовали соглашение об именах.
func downloadVideoLinkAndCreateAsset(_ videoLink: String) {
DispatchQueue.main.async {
self.view.makeToast("Downloading Video", duration: 0.8, position: .center)
}
guard let videoURL = URL(string: videoLink) else { return }
guard let documentsDirectoryURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first else { return }
URLSession.shared.downloadTask(with: videoURL) { (location, response, error) -> Void in
guard let location = location else { return }
let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "HH:mm:ss"
dateFormatter.timeZone = TimeZone(identifier: "GMT")
let destinationURL = documentsDirectoryURL.appendingPathComponent("\(dateFormatter.string(from: date)).mp4")
do {
try FileManager.default.moveItem(at: location, to: destinationURL)
PHPhotoLibrary.shared().performChanges({
PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: destinationURL)}) { completed, error in
if completed {
//Downloaded
} else if let error = error {
//Error
}
}
} catch {
print(error.localizedDescription)
}
}.resume()
}
Целевой URL - это URL-адрес каталога вашего проекта