如何将视频保存到相机胶卷并获取资产URL?

时间:2017-06-03 12:42:11

标签: ios phasset alasset phfetchoptions phassetslibrary

我需要从我的iOS应用中导出视频并获取资产ID。过去,您可以使用 ALAssetsLibrary

save image in camera roll and get asset url

但它现在已被弃用了。我想知道现在实现这一目标的新方法是什么?谢谢!

1 个答案:

答案 0 :(得分:0)

不推荐使用ALAssetsLibrary。你应该使用PhotosLibrary。

  

从iOS 9.0开始,不推荐使用Assets Library框架。相反,请使用Photos框架,在iOS 8.0及更高版本中,它可以为用户的照片库提供更多功能和更好的性能。有关更多信息,请参阅照片。   在Photos框架中,PHPhotoLibrary类管理对照片库的访问和更改,PHAsset和PHCollection类及相关类的类方法提供了查找照片和视频资源的功能。

请参阅此https://developer.apple.com/documentation/photos/phphotolibrary

这是一个示例代码,用于将视频保存到相机胶卷,并为您提供保存视频的网址。

var placeHolder : PHObjectPlaceholder?
PHPhotoLibrary.shared().performChanges({

    let creationRequest = PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: URL(string: videoPath)! )
    placeHolder = creationRequest?.placeholderForCreatedAsset

    }, completionHandler: { (success, error) in
        if success {

            let result = PHAsset.fetchAssets(withLocalIdentifiers: [placeHolder!.localIdentifier], options: nil)
            result.firstObject?.getURL(completionHandler: { url in

                // this is the url to the saved asset 

            })
        }
})

别忘了

import Photos

并将此代码添加为PHAsset的扩展名:

https://gist.github.com/jVirus/2f041bb8b1936093773f0bde42af3a49