我的视频存储在Firebase存储中。 我正在获取该视频的下载网址。我正在使用下载网址将视频保存在相机胶卷中。
但是我收到此错误:
“错误域= NSCocoaErrorDomain代码= -1”(空)“
这是我的代码:
@objc func saveVideoToCameralRoll(vidUrl: URL?) {
if FileManager.default.fileExists(atPath: self.localDir) {
return
}
if let vidUrl = vidUrl {
PHPhotoLibrary.shared().performChanges({
PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: vidUrl)
}) { saved, error in
if saved {
print("Video can be saved in camera roll")
}
if error != nil {
print("Error while saving video. \(error?.localizedDescription)")
}
}
}
我已经在浏览器中检查了视频URL,它是正确的。另外,我正在模拟器中运行此代码。无法将视频保存在iPhone模拟器相机胶卷中吗?
答案 0 :(得分:-1)
PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: vidUrl)
需要本地文件URL,而不是远程Web URL。您还需要访问照片库的权限。
您可能需要这样的东西:(使用图像的示例)
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let exampleURL = URL(string: "http://google.com")
saveImageAtURL(url: exampleURL!)
}
private func saveImageAtURL(url: URL) {
let session = URLSession.shared
let task = session.dataTask(with: url) { data, response, error in
guard let data = data,
error == nil,
let image = UIImage(data: data)else {
return
}
guard PHPhotoLibrary.authorizationStatus() == .authorized else {
return
}
PHPhotoLibrary.shared().performChanges({
PHAssetChangeRequest.creationRequestForAsset(from: image)
})
}
task.resume()
}
}