【发布时间】:2013-12-27 10:04:43
【问题描述】:
我正在尝试访问用户使用连拍模式拍摄的 iOS 资源库中的照片。我正在尝试使用ALAssetsLibrary 并过滤照片:
- (void)findBurstModePhotos
{
ALAssetsFilter *allPhotos = [ALAssetsFilter allPhotos];
ALAssetsLibrary *assetLibrary = [[ALAssetsLibrary alloc] init];
[assetLibrary enumerateGroupsWithTypes:ALAssetsGroupAll
usingBlock:^(ALAssetsGroup *group,
BOOL *stop) {
[group setAssetsFilter:allPhotos];
NSLog(@"Group: %@",
[group valueForProperty:
ALAssetsGroupPropertyName]);
if ([group numberOfAssets] > 0) {
[self evaluateGroup:group];
}
}
failureBlock:^(NSError *error) {
NSLog(@"Failure enumerating groups: %@",
[error localizedDescription]);
}];
}
- (void)evaluateGroup:(ALAssetsGroup *)group
{
[group enumerateAssetsUsingBlock:^(ALAsset *result,
NSUInteger index,
BOOL *stop) {
NSLog(@"Photo date: %@", [result valueForProperty:ALAssetPropertyDate]);
}];
}
不幸的是,这会将连拍模式照片作为单张照片返回。是否有支持单独获取连拍模式照片的方法?我想从单个 Burst Mode 会话中获取每张照片。
【问题讨论】:
-
您可能已经验证了这一点,但我希望您没有删除所有其他版本的照片,除了在连拍模式下最喜欢的照片。
-
猜对了,但我没有删除其他版本的照片。
-
这更像是一个问题——但是当您检查 *result 的属性
ALAssetPropertyType时,它是否报告为ALAssetTypePhoto?我问是因为我想知道他们是否还没有记录一个新的 ALAssetType(在意想不到的情况下,使用这些类型的 API 尚未完全实现)。 -
是的,所有照片。我尝试删除
ALAssetsFilter并寻找所有类型,但没有运气。 -
我没有机会只保存一个是否只是 5 / 5S 的差异?看来我将所有照片都作为单独的照片。
标签: ios alassetslibrary alasset alassetsgroup