【问题标题】:requestAVAssetForVideo doesn't show completion blockrequestAVAssetForVideo 不显示完成块
【发布时间】:2017-01-17 19:10:09
【问题描述】:
我有这个代码来加载 PHAsset:
PHVideoRequestOptions *options = [[PHVideoRequestOptions alloc] init];
options.networkAccessAllowed = YES;
[[PHImageManager defaultManager] requestAVAssetForVideo:[videos objectAtIndex:index] options:options resultHandler:^(AVAsset *asset, AVAudioMix *audioMix, NSDictionary *info) {
selectedAsset = asset;
}];
它非常适合存储在设备上的视频。但如果代码应该从 iCloud 加载视频,它不会调用完成块。
你能帮帮我吗?
【问题讨论】:
标签:
objective-c
xcode
avfoundation
icloud
photosframework
【解决方案1】:
请尝试其他代码 1 到 3
PHVideoRequestOptions *options = [[PHVideoRequestOptions alloc] init];
options.networkAccessAllowed = YES;
//Additional code 1
dispatch_semaphore_t semaphore = dispatch_semaphore_create(1);
[[PHImageManager defaultManager] requestAVAssetForVideo:[videos objectAtIndex:index] options:options resultHandler:^(AVAsset *asset, AVAudioMix *audioMix, NSDictionary *info) {
selectedAsset = asset;
//Additional code 2
dispatch_semaphore_signal(semaphore);
}];
//Additional code 3
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);