【发布时间】:2016-05-23 00:55:22
【问题描述】:
我不知道为什么这么难。我正在尝试确定 PHAsset 的文件类型,具体来说,我想知道给定的资产是否代表 GIF 图像。
只需检查资产的文件名就知道它是 MP4:
[asset valueForKey:@"filename"] ==> "IMG_XXXX.MP4"
保存到设备图像库时,iOS 是否会将 GIF 转换为视频?我也尝试过获取图像的数据并查看它的 dataUTI,但它只为 GIF 返回nil(我假设所有视频也是如此)。我正在按如下方式获取图像数据:
PHImageManager *manager = asset.imageManager ? asset.imageManager : [PHImageManager defaultManager];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
PHImageRequestOptions *o = [[PHImageRequestOptions alloc] init];
o.networkAccessAllowed = YES;
[manager requestImageDataForAsset:asset.asset options:o resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
dispatch_async(dispatch_get_main_queue(), ^{
CIImage *ciImage = [CIImage imageWithData:imageData];
if(completion) completion(imageData, dataUTI, orientation, info, ciImage.properties);
});
}];
});
上述调用返回的dataUTI是nil。
如果有人知道确定 PHAsset 文件类型的可靠方法(我专门寻找 GIF,但能够确定任何类型的文件会很棒),请告诉我!
【问题讨论】:
-
你找到答案了吗?
-
你找到答案了吗?
标签: ios objective-c gif photos phasset