FREE

- (void)getURLofPHAsset:(PHAsset *)asset completionHandler:(void (^)(NSURL *assetURL))completionBlock
{
 
    if (asset.mediaType ==  PHAssetMediaTypeImage) {
        PHContentEditingInputRequestOptions *options    =   [[PHContentEditingInputRequestOptions    alloc]  init];
        options.canHandleAdjustmentData                 =  ^BOOL(PHAdjustmentData *adjustmentData) { return YES; };
 
        [asset   requestContentEditingInputWithOptions:options completionHandler:^(PHContentEditingInput * _Nullable contentEditingInput, NSDictionary * _Nonnull info) {
            NSURL   *assetURL_ = contentEditingInput.fullSizeImageURL;
            completionBlock(assetURL_);
        }];
    }else if (asset.mediaType == PHAssetMediaTypeVideo) {
        PHVideoRequestOptions   *options    =   [[PHVideoRequestOptions  alloc]  init];
        options.version =   PHVideoRequestOptionsVersionOriginal;
 
        [[PHImageManager defaultManager] requestAVAssetForVideo:asset options:options resultHandler:^(AVAsset * _Nullable avAsset, AVAudioMix * _Nullable audioMix, NSDictionary * _Nullable info) {
 
            if ([avAsset isKindOfClass:[AVURLAsset class]]) {
 
                AVURLAsset  *urlAsset   =   (AVURLAsset *)avAsset;
                if (urlAsset) {
                    completionBlock(urlAsset.URL);
                }else{
                    completionBlock(nil);
                }
            }else{
                completionBlock(nil);
            }
        }];
    }
}
 
最終更新:2018年02月02日 13:11