如何仅在iOS Swift3中将图像和视频存储在自定义文件夹中

时间:2018-10-25 11:04:02

标签: ios iphone swift

我正在使用以下源代码将图像和视频存储在自定义文件夹中。它的工作正常,但我的问题是这些图像和视频也存储在iPhone的“所有照片”文件夹中。如何仅将其保存在自定义文件夹中?谁能帮我完成这项任务?

我这样称呼这个班

func fileOutput(_ output: AVCaptureFileOutput, didFinishRecordingTo outputFileURL: URL, from connections: [AVCaptureConnection], error: Error?) {
    print("FINISHED \(String(describing: error ))")
    // save video to camera roll
    if error == nil {
        print("---------------FilePath--------------\(outputFileURL.path)")

        print(self.videoPreviewUiimage(fileName: outputFileURL)!)


        self.iconImage.image  = self.videoPreviewUiimage(fileName: outputFileURL)!


          MyAwesomeAlbum.shared.save(image: self.iconImage.image!)
        MyAwesomeAlbum.shared.saveMovieToLibrary(movieURL: outputFileURL)

        self.handleCaptureSession()

    }
}

func saveMovieToLibrary(movieURL: URL) {

    self.checkAuthorizationWithHandler { (success) in
        if success, self.assetCollection != nil {

            PHPhotoLibrary.shared().performChanges({

                if let assetChangeRequest = PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: movieURL) {
                    let assetPlaceHolder = assetChangeRequest.placeholderForCreatedAsset
                    if let albumChangeRequest = PHAssetCollectionChangeRequest(for: self.assetCollection) {
                        let enumeration: NSArray = [assetPlaceHolder!]
                        albumChangeRequest.addAssets(enumeration)
                    }

                }

            }, completionHandler:  { (success, error) in
                if success {
                    print("Successfully saved video to Camera Roll.")
                } else {
                    print("Error writing to movie library: \(error!.localizedDescription)")
                }
            })


        }
    }

}

func save(image: UIImage) {
    self.checkAuthorizationWithHandler { (success) in
        if success, self.assetCollection != nil {
            PHPhotoLibrary.shared().performChanges({
                let assetChangeRequest = PHAssetChangeRequest.creationRequestForAsset(from: image)
                let assetPlaceHolder = assetChangeRequest.placeholderForCreatedAsset
                if let albumChangeRequest = PHAssetCollectionChangeRequest(for: self.assetCollection) {
                    let enumeration: NSArray = [assetPlaceHolder!]
                    albumChangeRequest.addAssets(enumeration)
                }

            }, completionHandler: { (success, error) in
                if success {
                    print("Successfully saved image to Camera Roll.")
                } else {
                    print("Error writing to image library: \(error!.localizedDescription)")
                }
            })

        }
    }
}

0 个答案:

没有答案