PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeVideo不返回video

从标题编辑删除的版本,但这开始于iOS 8.1

我有一个应用程序,我已经build立,将播放来自用户Photos.app的video。 当我在8.0.2设备上安装应用程序时,我从[PHAsset fetchAssetsWithMediaType:options:]调用中找回video列表没问题,但是当我在8.1设备上安装完全相同的代码时,我得到0个video返回。 有没有人遇到过这个? 8.1是否改变了我们应该从Photos.app再次访问照片/video的方式?

PHFetchOptions *options = [[PHFetchOptions alloc] init]; PHFetchResult *videos = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeVideo options:options]; 

任何帮助,将不胜感激。

更新

修改我的代码来使用PHAssetCollection调用尝试和获取相册,我得到了一些成功,现在在这两个版本我得到我的6个video中的3(不幸的是每次不一样3)。

 PHFetchResult *collection = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAlbumSyncedAlbum options:options]; PHFetchResult *videos = [PHAsset fetchKeyAssetsInAssetCollection:collection[0] options:nil]; 

编辑#2

好吧,我刚刚在上面的代码中看到了我的错误,我将它留给了那些做了同样愚蠢的事情的人。 我的video抓取线正在呼吁“关键”资产,这就是为什么我只得到3。

 PHFetchResult *collection = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAlbumSyncedAlbum options:options]; PHFetchResult *videos = [PHAsset fetchAssetsInAssetCollection:collection[0] options:nil]; 

自我回答,如果有人遇到这个问题,他们可能会有答案。

所以我仍然不确定为什么我的原始代码在升级到8.1之后不起作用,但是编辑#2中的代码通过另一个方向来解决问题。

 PHFetchResult *collection = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAlbumSyncedAlbum options:options]; PHFetchResult *videos = [PHAsset fetchAssetsInAssetCollection:collection[0] options:nil]; 

显然都是

 PHFetchResult *videos = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeVideo options:options]; 

 PHFetchResult *collection = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAlbumSyncedAlbum options:options]; PHFetchResult *videos = [PHAsset fetchAssetsInAssetCollection:collection[0] options:nil]; 

在10.1中工作,但只有在video位于“照片”应用程序中才有效。 video应用中的家庭(和其他types)video不可迭代。

所以你不能使用迟到的iTunes来获得video到设备上,你必须使用AirDrop的video最终在照片,而不是video应用程序。