已修改从标题中删除了版本,但这是从iOS 8.1开始的
我有一个应用程序,我已经构建了将播放用户Photos.app的视频。当我在8.0.2设备上安装应用程序时,我从[PHAsset fetchAssetsWithMediaType:options:]调用回来的视频列表没有问题,但是当我在8.1设备上安装完全相同的代码时,我得到了0个视频返回。有没有人碰到这个? 8.1是否改变了我们应该再次从Photos.app访问照片/视频的方式?
PHFetchOptions *options = [[PHFetchOptions alloc] init];
PHFetchResult *videos = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeVideo options:options];
任何帮助都将不胜感激。
更新
修改我的代码以使用PHAssetCollection调用来尝试获取相册并获得一些成功,现在在两个版本中我获得了6个视频中的3个(不幸的是每次都不是3个)。
PHFetchResult *collection = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAlbumSyncedAlbum options:options];
PHFetchResult *videos = [PHAsset fetchKeyAssetsInAssetCollection:collection[0] options:nil];
编辑#2
好的,我刚刚在上面的代码中看到了我的错误,而且我把它留给了那些做同样愚蠢事情的人。我的视频提取行正在呼唤" Key"资产,这就是为什么我只得到3。
PHFetchResult *collection = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAlbumSyncedAlbum options:options];
PHFetchResult *videos = [PHAsset fetchAssetsInAssetCollection:collection[0] options:nil];
答案 0 :(得分:3)
自我回答所以,如果有其他人遇到这个,他们可能会有答案。
所以我仍然不确定为什么我的原始代码在升级到8.1之后不起作用,但是我在Edit#2中的代码通过向另一个方向进行解决来解决问题。
PHFetchResult *collection = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAlbumSyncedAlbum options:options];
PHFetchResult *videos = [PHAsset fetchAssetsInAssetCollection:collection[0] options:nil];
答案 1 :(得分:0)
显然两者
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中工作,但仅限于视频位于“照片”应用中。 视频应用中的主页(以及其他类型的)视频 是不可迭代的。
因此,您无法使用较晚的iTunes来将视频投放到设备上,您必须使用AirDrop才能将视频最终投放到照片而不是视频应用中。