我们的应用可让用户从相机胶卷加载视频。这是非常标准的东西:
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的解决方案。
答案 0 :(得分:0)
你试过这个:
PHFetchOptions *allPhotosOptions = [PHFetchOptions new];
allPhotosOptions.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:YES]];
PHFetchResult *allPhotosResult = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeVideo options:allPhotosOptions];
当我在设备上测试时,它会返回我在设备上的所有视频,而不仅仅是最近的视频。