2
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];

这是我获取不包括慢动作视频的视频的代码。但是我遇到了以下错误。即使我这样做也不起作用,

PHFetchOptions *fetchOptions = [PHFetchOptions new];
fetchOptions.predicate = [NSPredicate predicateWithFormat:@"(mediaSubtype & %d) == 0", PHAssetMediaSubtypeVideoHighFrameRate];

有人请帮忙。提前致谢。

Unsupported predicate in fetch options: mediaSubtype == 131072
4

3 回答 3

4

斯威夫特 4

let assetFetchOptions = PHFetchOptions()
assetFetchOptions.predicate = NSPredicate(format: "NOT ((mediaSubtype & %d) != 0)", PHAssetMediaSubtype.videoHighFrameRate.rawValue)
于 2017-12-16T09:05:20.903 回答
2

试试这个:

fetchOptions.predicate = [NSPredicate predicateWithFormat:@"(mediaSubtype != %d)", PHAssetMediaSubtypeVideoHighFrameRate];
于 2015-08-12T10:03:51.140 回答
2

要排除慢动作视频,唯一对我有用的谓词是:

PHFetchOptions *options = [PHFetchOptions new];
// Disable slow motion videos
options.predicate = [NSPredicate predicateWithFormat:@"NOT ((mediaSubtype & %d) != 0)", PHAssetMediaSubtypeVideoHighFrameRate];
于 2017-06-28T09:06:29.473 回答