2017-06-23 4 views
0

Dans mon application, je ne montre que les ressources que l'utilisateur peut modifier, donc je ne montre que des photos - pas de vidéos. Nouveau dans iOS 11 Live Photos a deux effets qui transforment la photo en une vidéo: Loop et Bounce. Ces photos en direct ne peuvent pas être modifiées dans l'application Photos - le bouton plugins est désactivé. Je dois filtrer ceux dans mon PHFetchResult. Mais mediaType de image inclut toujours ces «vidéos en direct». Comment puis-je exclure ceux du fetch? Peut-être quelque chose à voir avec le playbackStyle de PHAsset?NSPredicate ne pas inclure de boucles et de Bounce Live Photos

let photoLibraryFetchResult = PHAssetCollection.fetchAssetCollections(with: .smartAlbum, subtype: .smartAlbumUserLibrary, options: nil) 
let assetCollection = photoLibraryFetchResult.firstObject! 

let imagesOnlyFetchOptions = PHFetchOptions() 
imagesOnlyFetchOptions.predicate = NSPredicate(format: "mediaType = %d", PHAssetMediaType.image.rawValue) 

let assetsFetchResults = PHAsset.fetchAssets(in: assetCollection, options: imagesOnlyFetchOptions) 

Répondre

0

Essayez d'examiner la valeur playbackStyle. (Read more here)

ENUM a les options suivantes:

case image 
case imageAnimated 
case livePhoto 
case unsupported 
case video 
case videoLooping 
+0

Cool, syntaxe est: 'NSPredicate (format: "playbackStyle =% d ou playbackStyle =% d", PHAsset.PlaybackStyle.image .rawValue, PHAsset.PlaybackStyle.livePhoto.rawValue) ' – Joey