我不知道爲什麼這是如此困難。我試圖確定PHAsset的文件類型,具體來說,我想知道給定的資產是否代表GIF圖像。如何正確檢測PHAsset的文件類型(GIF)
簡單地檢查資產的文件名告訴我,這是一個MP4:
[asset valueForKey:@"filename"] ==> "IMG_XXXX.MP4"
的iOS是否保存時對設備的圖像庫轉換GIF對視頻?我也嘗試過提取圖像的數據並查看它的dataUTI,但它只是返回nil
GIF(我假設所有視頻也是)。我獲取的圖像數據如下:
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的,但能夠確定任何類型的文件將是偉大的)讓我知道!
沒有你找到答案? –
你找到答案了嗎? –