首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用alamofire下载到相机胶卷

使用alamofire下载到相机胶卷
EN

Stack Overflow用户
提问于 2017-06-26 12:03:22
回答 2查看 692关注 0票数 1

我使用这个函数使用alamofire将视频下载到一个名为downloads的文件中。我如何编辑它才能将视频保存到相机胶卷中

代码语言:javascript
运行
复制
    func downloadVideoToCameraRoll() {


    let destination: DownloadRequest.DownloadFileDestination = { _, response in
        let pathComponent = response.suggestedFilename!
        var documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
        let directoryURL: URL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
        let folderPath: URL = directoryURL.appendingPathComponent("Downloads", isDirectory: true)
        let fileURL: URL = folderPath.appendingPathComponent(pathComponent)
        return (fileURL, [.removePreviousFile, .createIntermediateDirectories])
    }
    Alamofire.download(firstId, method: .get, parameters: nil, encoding: JSONEncoding.default, to: destination)
        .downloadProgress(queue: DispatchQueue.global(qos: .utility)) { progress in
            self.progresss.setProgress(Float(progress.fractionCompleted), animated: true)
            //print("Progress: \(progress.fractionCompleted)")

        }
        .validate { request, response, temporaryURL, destinationURL in
            // Custom evaluation closure now includes file URLs (allows you to parse out error messages if necessary)
            return .success
        }
        .responseJSON { response in
            debugPrint(response)
            print(response.temporaryURL!)
            print(response.destinationURL!)
    }
EN

回答 2

Stack Overflow用户

发布于 2017-06-26 15:14:31

你可以在swift 3中使用这个:

代码语言:javascript
运行
复制
PHPhotoLibrary.shared().performChanges({
   PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: urlToYourVideo)
}) { saved, error in
if saved {
    print("Saved")
}
}

注意:需要导入照片

票数 2
EN

Stack Overflow用户

发布于 2017-06-26 13:14:41

尝试下面的代码

代码语言:javascript
运行
复制
func downloadVideoToCameraRoll() {


    let destination: DownloadRequest.DownloadFileDestination = { _, response in
        let pathComponent = response.suggestedFilename!
        var documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
        let directoryURL: URL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]

        return (directoryURL, [.removePreviousFile, .createIntermediateDirectories])
    }
    Alamofire.download(firstId, method: .get, parameters: nil, encoding: JSONEncoding.default, to: destination)
        .downloadProgress(queue: DispatchQueue.global(qos: .utility)) { progress in
            self.progresss.setProgress(Float(progress.fractionCompleted), animated: true)
            //print("Progress: \(progress.fractionCompleted)")

        }
        .validate { request, response, temporaryURL, destinationURL in
            // Custom evaluation closure now includes file URLs (allows you to parse out error messages if necessary)
            return .success
        }
        .responseJSON { response in
            debugPrint(response)
            print(response.temporaryURL!)
            print(response.destinationURL!)
            saveVideoTo(destinationURL)
    }


    func saveVideoTo(_ videoUrl:Url?){

    if videoUrl != nil {
            PHPhotoLibrary.sharedPhotoLibrary().performChanges({ () -> Void in

            let createAssetRequest: PHAssetChangeRequest = PHAssetChangeRequest.creationRequestForAssetFromVideoAtFileURL(NSURL(string: videoUrl)!)!
            createAssetRequest.placeholderForCreatedAsset

            }) { (success, error) -> Void in
                if success {
                //saved successfully 

                }
                else {
                 //error occured
                }
        }

    }

    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44752963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档