使用 UISaveVideoAtPathToSavedPhotosAlbum 将视频从 url https...保存到照片库

问题描述 投票:0回答:1

有人可以告诉我将视频保存到照片库的简单代码吗

我有链接

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,我无法找出使用它的简单方法。

我将非常感谢你的帮助:)

swift swiftui video save
1个回答
0
投票

这是一个使用异步等待保存 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")
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.