我在使用requestAVAssetForVideo
获取视频时遇到了一些问题。似乎在获取某些视频时,dispatch_async
永远不会被调用,在其他视频上,它被调用并按预期工作。有人能发现问题可能是什么吗?
- (void)videoSelected:(long)selectedVideoIndex {
PHAsset *selectedVideo = [self.allVideos objectAtIndex:selectedVideoIndex];
PHVideoRequestOptions *options = [[PHVideoRequestOptions alloc] init];
options.networkAccessAllowed = YES;
self.movieInformation = [[NSMutableDictionary alloc] init];
[[PHImageManager defaultManager] requestAVAssetForVideo:selectedVideo options:options resultHandler:^(AVAsset *avAsset, AVAudioMix *audioMix, NSDictionary *info) {
// Use the AVAsset avAsset
dispatch_async(dispatch_get_main_queue(), ^{
[self loadingScreen];
[self loadTheVideo:avAsset];
});
}];
}
更新 似乎当我使用照片应用程序运行相同的视频时,它们也会挂起并且微调器继续运行。是否有办法添加在视频失败时调用的超时属性?
答案 0 :(得分:1)
存储在 iCloud 中的视频/图片的延迟是正常的。如果您已启用iCloud备份并在手机设置中启用优化存储,则您的iPhone会将视频和图像备份到iCloud,并维持较低的图像分辨率和视频缩略图,并根据需要从iCloud中提取。登记/>
代码中的networkAccessAllowed
负责从iCloud中获取视频或图像。如果是OFF
,iOS将不会打扰存储在iCloud中的项目 - 它只会获取设备中的本地内容。