Nie mam pojęcia, dlaczego tak jest trudno. Próbuję określić typ pliku PHAsset, w szczególności chcę wiedzieć, czy dany zasób reprezentuje obraz GIF, czy nie.Jak prawidłowo wykryć typ pliku PHAsset (GIF)?
Wystarczy sprawdzania pliku składnika aktywów mówi mi, że jest to MP4:
[asset valueForKey:@"filename"] ==> "IMG_XXXX.MP4"
Czy iOS konwertować filmy do GIF po zapisaniu się do biblioteki urządzenia zdjęciu? Próbowałem również pobrać dane obrazu i spojrzeć na to dataUTI, ale po prostu zwraca nil
dla GIF-a (zakładam też wszystkie filmy). Ja ściągam dane obrazu w następujący sposób:
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 wrócił z powyższym wezwanie jest nil
.
Jeśli ktoś wie o niezawodnym sposobie określania typu pliku PHAsset (szukam GIF-ów, ale możliwość określenia dowolnego typu pliku byłaby świetna), daj mi znać!
prawda Znajdź odpowiedź? –
znalazłeś odpowiedź? –