Получить только видео конкретного альбома из библиотеки IOS
Я хочу список видео, которые хранятся в конкретном альбоме, как этот (VideoMaker) . Этот список находится в массиве URL.
- Этот список показывают в uicollectionview
Я пишу этот код для извлечения видео, но оно дает нулевое значение URL.
[_library enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop){
NSLog(@"succed");
if (group != NULL) {
[group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index,BOOL *st){
if ([[result valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypeVideo]) {
NSLog(@"asset: %@", result);
[assets addObject:result];
}
}];
}
[self.collectionView reloadData];
} failureBlock:^(NSError *error) {
NSLog(@"Failure");
}];
В этом коде _библиотека - это (ALAssetLibrary), а ресурсы - (NSMutableArray). Я создал один альбом на своем Iphone, поэтому я хочу получить только это видео, которое хранится в моем альбоме.
1 ответ
Решение
Я добавляю фильтр активов в этом. с именем свойства
Новый код:
[_library enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop){
if ([[group valueForProperty:ALAssetsGroupPropertyName] isEqual:@"VideoMaker"]) {
[group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop){
[group setAssetsFilter:[ALAssetsFilter allVideos]];
if ([[result valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypeVideo]) {
NSLog(@"asset: %@", result);
[assets addObject:result];
}
}];
}
[self.collectionView reloadData];
//[self.activity stopAnimating];
//[self.activity setHidden:YES];
}
failureBlock:^(NSError *error){
NSLog(@"failure"); }];
}