2017-01-17 4 views
2

У меня есть этот код, чтобы загрузить PHAsset:requestAVAssetForVideo не показывает блок завершения

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, он не вызывает блок завершения. Вы можете мне помочь?

ответ

-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); 
Смежные вопросы