ALAssetsGroupSavedPhotos недавние, не все, видео под iOS8
Наше приложение позволяет пользователю загружать видео со своей камеры. Это довольно стандартные вещи:
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
// Enumeration over all groups with videos
ALAssetsLibraryGroupsEnumerationResultsBlock groupsEnumerationBlock = ^(ALAssetsGroup *group, BOOL *stop)
{
[group setAssetsFilter:[ALAssetsFilter allVideos]];
[group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop)
{
if (result) {
// do stuff here with each video
}
}];
};
[library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock: groupsEnumerationBlock
failureBlock:^(NSError *error) {
log4Debug(@"No groups found or accessible for Camera Roll.");
}
];
Проблема конечно с iOS8. Этот код перечисляет все видео под iOS7, но под iOS8 он перечисляет все последние видео. Видео старше 30 дней недоступно.
Действительно, когда вы смотрите на приложение "Фотографии" под iOS8, вы даже больше не видите "Фотопленку", просто альбом "Недавно добавленные". Теперь есть также альбом "Видео", в котором есть все видео. Доступ к этому будет хорошо здесь.
Мы не можем конвертировать в PhotoKit (сегодня). Мы хотим сделать это в ближайшее время, но сейчас нам нужно решение, которое работает как с iOS7, так и с iOS8.
1 ответ
Вы пробовали это:
PHFetchOptions *allPhotosOptions = [PHFetchOptions new];
allPhotosOptions.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:YES]];
PHFetchResult *allPhotosResult = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeVideo options:allPhotosOptions];
Когда я проверил это на своем устройстве, он вернул все видео, которые у меня есть на устройстве, а не только последние.