有没有人想出如何从Live Photo中提取视频部分?我正在开发一个应用程序,将Live Photos转换为GIF,第一步是从Live Photo获取视频文件.它似乎应该是可能的,因为如果你将手机插入Mac,你可以看到单独的图像和视频文件.我在提取过程中碰到了一堵砖墙,我尝试了许多方法,但都失败了.
我做的第一件事就是通过以下方式获取PHAsset,我认为它是Live Photo的视频部分:
if let livePhoto = info["UIImagePickerControllerLivePhoto"] as? PHLivePhoto { let assetResources = PHAssetResource.assetResourcesForLivePhoto(livePhoto) for assetRes in assetResources { if (assetRes.type == .PairedVideo) { let assets = PHAsset.fetchAssetsWithLocalIdentifiers([assetRes.assetLocalIdentifier],options: nil) if let asset = assets.firstObject as? PHAsset {
要将PHAsset转换为AVAsset,我尝试过:
asset.requestContentEditingInputWithOptions(nil,completionHandler: { (contentEditingInput,info) -> Void in if let url = contentEditingInput?.fullSizeImageURL { let movieUrl = url.absoluteString + ".mov" let avAsset = AVURLAsset(URL: NSURL(fileURLWithPath: movieUrl),options: nil) debugPrint(avAsset) debugPrint(avAsset.duration.value) } })
我不认为这个有效,因为带有duration.value的调试打印给出0.
我也试过没有添加“.mov”,它仍然无法正常工作.
我也尝试过:
PHImageManager.defaultManager().requestAVAssetForVideo(asset,options: nil,resultHandler: { (avAsset,audioMix,info) -> Void in debugPrint(avAsset) })
并且debugPrint(avAsset)打印nil,因此它不起作用.
我有点害怕他们可能无法做到,似乎我已经进入了圈子,因为看起来我得到的PHAsset仍然是Live Photo而不是视频.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。