有人可以告诉我将视频保存到照片库的简单代码吗
我有链接
let videoURL = "https://v16m-default.akamaized.net/fe144652a33b4df42aad6ac47ede1534/67277349/video/tos/useast2a/tos-useast2a-ve-0068c003/00a9393b3a6246b99081a11348575483/?a=0&bti=OUBzOTg7QGo6OjZAL3AjLTAzYCMxNDNg&ch=0&cr=0&dr=0&er=0&lr=all&net=0&cd=0%7C0%7C0%7C0&cv=1&br=5010&bt=2505&cs=0&ds=6&ft=XE5bCqT0m7jPD12iKoYJ3wU2Y3yKMeF~O5&mime_type=video_mp4&qs=0&rc=ZGRoOzloZzw0PGU3NDY1aUBpanlrNHN0OHdndjMzNTczM0BhLy1hXzIxXy0xLS1iMi0xYSMzL3NnNDI0NC9fLS0uMTZzcw%3D%3D&vvpl=1&l=202411030657353C428D976FE213CC387E&btag=e00088000"
我添加了隐私照片库添加行。
研究这个问题我创建了从 url https 保存图像的函数...
func savePhoto() {
let imageSaver = ImageSaver()
let url = URL(string: imageURL)!
DispatchQueue.global().async{
if let data = try? Data(contentsOf: url) {
if let inputImage: UIImage = UIImage(data: data) {
DispatchQueue.main.async {
UIImageWriteToSavedPhotosAlbum(inputImage, self, nil, nil)
}
}
}
}
}
效果很好。我需要同样简单的功能将视频保存到图库。
看起来 UISaveVideoAtPathToSavedPhotosAlbum 函数是合适的。但如果没有大量的@objc сode,我无法找出使用它的简单方法。
我将非常感谢你的帮助:)
这是一个使用异步等待保存 mp4 视频文件的示例,无论如何您的链接已损坏:
class SaveVideoHelper {
static func saveVideo(url: String) async throws {
guard let url = URL(string: url) else { return }
let downloadedUrl = try await URLSession.shared.download(from: url).0
let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
let fileURL = documentsURL.appendingPathComponent("randomView.mp4")
if FileManager.default.fileExists(atPath: fileURL.path) {
try FileManager.default.removeItem(at: fileURL)
}
try FileManager.default.moveItem(at: downloadedUrl, to: fileURL)
try await PHPhotoLibrary.shared().performChanges {
PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: fileURL)
}
print("SAVE VIDEO SUCCESS")
}
}