NSPredicate 不包括 Loop 和 Bounce Live Photos
NSPredicate to not include Loop and Bounce Live Photos
在我的应用程序中,我只显示用户可以编辑的资产,所以我只显示照片 - 没有视频。 iOS 中的新增功能 11 Live Photos 具有两种可有效将照片变成视频的效果 - 循环和弹跳。这些实况照片无法在照片应用程序中编辑 - 插件按钮被禁用。我需要在我的 PHFetchResult
中过滤掉那些。但是image
的mediaType
还包括这些'live videos'。我怎样才能从抓取中排除那些?也许与 PHAsset
的 playbackStyle
有关?
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)
尝试查看 playbackStyle
值。 (Read more here)
枚举有以下选项:
case image
case imageAnimated
case livePhoto
case unsupported
case video
case videoLooping
在我的应用程序中,我只显示用户可以编辑的资产,所以我只显示照片 - 没有视频。 iOS 中的新增功能 11 Live Photos 具有两种可有效将照片变成视频的效果 - 循环和弹跳。这些实况照片无法在照片应用程序中编辑 - 插件按钮被禁用。我需要在我的 PHFetchResult
中过滤掉那些。但是image
的mediaType
还包括这些'live videos'。我怎样才能从抓取中排除那些?也许与 PHAsset
的 playbackStyle
有关?
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)
尝试查看 playbackStyle
值。 (Read more here)
枚举有以下选项:
case image
case imageAnimated
case livePhoto
case unsupported
case video
case videoLooping