ALAssetsGroupSavedPhotos最近,不是所有,iOS8下的视频

时间:2014-09-18 20:36:57

标签: ios8 alassetslibrary photokit

我们的应用可让用户从相机胶卷加载视频。这是非常标准的东西:

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 个答案:

答案 0 :(得分:0)

你试过这个:

PHFetchOptions *allPhotosOptions = [PHFetchOptions new];
allPhotosOptions.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:YES]];

PHFetchResult *allPhotosResult = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeVideo options:allPhotosOptions];

当我在设备上测试时,它会返回我在设备上的所有视频,而不仅仅是最近的视频。