1. 程式人生 > >requestAVAssetForVideo 取出相簿檔案為空

requestAVAssetForVideo 取出相簿檔案為空

- (PHImageRequestID)requestAVAssetForVideo:(PHAsset *)asset options:(nullable PHVideoRequestOptions *)options resultHandler:(void (^)(AVAsset *__nullable asset, AVAudioMix *__nullable audioMix, NSDictionary *__nullable info))resultHandler;

能取出所有的使用者相簿,包含iCloud的,如果本地相簿沒有,
requestAVAssetForVideo 取出相簿為空 asset = nil; info中也會是空資料;

對於這種相簿檔案使用時候。需要在PHVideoRequestOptions中新增:options.networkAccessAllowed = true;
當然有一段下載時間。

PHVideoRequestOptions *options = [[PHVideoRequestOptions alloc] init];
                options.version = PHImageRequestOptionsVersionCurrent;
                options.deliveryMode = PHVideoRequestOptionsDeliveryModeAutomatic
; // options.networkAccessAllowed = true; // iCloud的相簿需要網路許可 @MVU_WEAKIFY(self); [[PHImageManager defaultManager] requestAVAssetForVideo:photo options:options resultHandler:^(AVAsset * _Nullable asset, AVAudioMix * _Nullable audioMix, NSDictionary * _Nullable info) { @MVU_STRONGIFY
(self); if(![asset isKindOfClass:[AVURLAsset class]]){ return; } AVURLAsset *urlAsset = (AVURLAsset *)asset; dispatch_async(dispatch_get_main_queue(), ^{ [self.navigationController pushViewController:vc animated:YES]; }); }];