का सही ढंग से पता लगाने के लिए मुझे नहीं पता कि यह इतना कठिन क्यों है। मैं एक PHAsset के फ़ाइल प्रकार को निर्धारित करने की कोशिश कर रहा हूं, विशेष रूप से, मैं जानना चाहता हूं कि कोई दी गई संपत्ति एक जीआईएफ छवि का प्रतिनिधित्व करती है या नहीं।PHAsset के फ़ाइल प्रकार (जीआईएफ)
सीधे शब्दों में संपत्ति के फ़ाइल नाम का निरीक्षण बताता है मुझे यह एक MP4 है:
[asset valueForKey:@"filename"] ==> "IMG_XXXX.MP4"
आईओएस वीडियो के लिए GIF के परिवर्तित करता है जब उपकरणों छवि लाइब्रेरी में सहेजी गई? मैंने छवि के डेटा को लाने और इसे डेटाUTI को देखने का भी प्रयास किया है, लेकिन यह जीआईएफ के लिए 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 फ़ाइल प्रकार निर्धारित करने के लिए विश्वसनीय तरीके से जानता है (मैं विशेष रूप से जीआईएफ की तलाश कर रहा हूं, लेकिन किसी भी प्रकार की फ़ाइल के लिए निर्धारित करने में सक्षम होना अच्छा होगा) मुझे बताएं!
तुमने किया था उत्तर ढूंढो? –
क्या आपको कोई जवाब मिला? –