我无法将视频保存到相机胶卷中

时间:2019-08-05 06:57:57

标签: swift firebase firebase-storage

我的视频存储在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模拟器相机胶卷中吗?

1 个答案:

答案 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()
    }
}