2017-01-17 1 views
2

ich diesen Code haben eine PHAsset zu laden:requestAVAssetForVideo nicht zeigen Abschluss Block

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; 
}]; 

Es funktioniert völlig in Ordnung, mit auf dem Gerät gespeicherten Videos. Wenn der Code jedoch ein Video von iCloud laden soll, wird der Completion-Block nicht aufgerufen. Können Sie mir helfen?

Antwort

-1

Bitte versuchen Sie zusätzlichen Code 1 bis 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); 
Verwandte Themen