我想对来自iOS图库的视频进行后处理,向用户展示有关其捕获视频的一些信息。
使用UIImagePickerController
,可以向用户显示文件选择器界面,用户可以在其中单独选择要在外部应用程序中处理的文件。
与此相反,是否可以“自动”访问iOS画廊中的视频“没有”用户手动选择?我打算从画廊处理视频文件-on,并向用户显示其图库中所有视频的数据。
我需要相关的API,但我还是找不到它。
如果我需要在我的应用文档目录中复制视频,我才能处理它。
答案 0 :(得分:0)
从iOS 10开始,我们还需要在info.plist文件中提供照片库使用说明。应用程序用户将获得他/她希望应用程序访问他/她的图库内容的提示。如果没有,那么你就无法获得图库/视频。
答案 1 :(得分:-1)
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
self.dismissViewControllerAnimated(true, completion: nil)
if let referenceURL = info[UIImagePickerControllerReferenceURL] as? NSURL {
let fetchResult = PHAsset.fetchAssetsWithALAssetURLs([referenceURL], options: nil)
if let phAsset = fetchResult.firstObject as? PHAsset {
PHImageManager.defaultManager().requestAVAssetForVideo(phAsset, options: PHVideoRequestOptions(), resultHandler: { (asset, audioMix, info) -> Void in
if let asset = asset as? AVURLAsset {
let videoData = NSData(contentsOfURL: asset.URL)
// optionally, write the video to the temp directory
let videoPath = NSTemporaryDirectory() + "tmpMovie.MOV"
let videoURL = NSURL(fileURLWithPath: videoPath)
let writeResult = videoData?.writeToURL(videoURL, atomically: true)
if let writeResult = writeResult where writeResult {
print("success")
}
else {
print("failure")
}
}
})
}
}
}