【问题标题】: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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多