Reputation: 1434
NSString *predicateFormat = [NSString stringWithFormat: @"mediaSubtype = %zd", PHAssetMediaSubtypeVideoHighFrameRate];
NSPredicate *predicate = [NSPredicate predicateWithFormat: predicateFormat];
PHFetchOptions *fetchOptions = [PHFetchOptions new];
fetchOptions.predicate = predicate;
PHFetchResult *userAlbums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum subtype:PHAssetCollectionSubtypeSmartAlbumVideos options:fetchOptions];
This is my code to fetch videos which excludes slow motion videos. But I'm getting following error.This doesn't work even if I do like this,
PHFetchOptions *fetchOptions = [PHFetchOptions new];
fetchOptions.predicate = [NSPredicate predicateWithFormat:@"(mediaSubtype & %d) == 0", PHAssetMediaSubtypeVideoHighFrameRate];
Somebody please help. Thanks in advance.
Unsupported predicate in fetch options: mediaSubtype == 131072
Upvotes: 2
Views: 1239
Reputation: 10479
Swift 4
let assetFetchOptions = PHFetchOptions()
assetFetchOptions.predicate = NSPredicate(format: "NOT ((mediaSubtype & %d) != 0)", PHAssetMediaSubtype.videoHighFrameRate.rawValue)
Upvotes: 4
Reputation: 3771
To exclude slow motion videos, the only predicate that worked for me is this:
PHFetchOptions *options = [PHFetchOptions new];
// Disable slow motion videos
options.predicate = [NSPredicate predicateWithFormat:@"NOT ((mediaSubtype & %d) != 0)", PHAssetMediaSubtypeVideoHighFrameRate];
Upvotes: 2
Reputation: 5772
Try this:
fetchOptions.predicate = [NSPredicate predicateWithFormat:@"(mediaSubtype != %d)", PHAssetMediaSubtypeVideoHighFrameRate];
Upvotes: 2