【发布时间】:2014-11-19 10:53:12
【问题描述】:
我正在将我们的应用程序转换为使用 iOS8 的照片框架,ALAsset 框架显然是 iOS8 下的二等公民。
我有一个问题是我们的架构确实需要一个 NSURL 来表示媒体在“磁盘”上的位置。我们使用它来将媒体上传到我们的服务器以进行进一步处理。
使用 ALAsset 很容易:
ALAssetRepresentation *rep = [asset defaultRepresentation];
self.originalVideo = rep.url;
但我只是没有在 PHAsset 中看到这种能力。我想我可以打电话:
imageManager.requestImageDataForAsset
然后将其写入文件系统中的临时点,但这看起来非常繁重和浪费,更不用说可能很慢。
有没有办法得到这个,还是我要重构我的应用程序,只在 iOS7 上使用 NSURL,在 iOS8 上使用其他方法?
【问题讨论】:
-
再看我的代码,我使用 URL 的唯一原因是将它提供给 AVAssetExportSession 和/或 AVAssetImageGenerator 所以我想我会替换那些调用。再说一次,一旦我把它提供给那些我仍然需要一个 NSURL 来传递给我们的上传者,所以我敢打赌这个问题仍然存在。
-
从您在这里的评论看来您已经为自己弄清楚了,但其他人可以在这里看到:如果您只需要使用旧方法的 URL(如 AVAssetExportSession),您可能可以使用它们的较新版本匹配 PHAsset 而不是 AVAsset (AVURLAsset)。例如:PHImageManager.defaultManager()的requestExportSessionForVideo和requestPlayerItemForVideo
标签: ios8 alassetslibrary photosframework phasset