PHAsset获得视频URL,遇到的一些问题

之前写过“PHAsset获得视频URL时,用requestAVAssetForVideo有时会得到AVComposition这个对象”这个博客http://blog.csdn.net/zhangqiaoge/article/details/78467724有介绍怎么去处理来获得url。

现在又发现一个新的方法,通过

[[PHImageManagerdefaultManager] requestAVAssetForVideo:phassetoptions:options resultHandler:^(AVAsset *_Nullable asset,AVAudioMix * _Nullable audioMix,NSDictionary * _Nullable info) {这个方法得到的info字典如下

po info

{

    PHImageFileSandboxExtensionTokenKey = "8f71358aa52f24bddc2fd536abff93d933825f5a;00000000;00000000;000000000000001b;com.apple.avasset.read-only;00000001;01000002;00000001005e20b6;/private/var/mobile/Media/DCIM/100APPLE/IMG_0601.MOV";

    PHImageResultDeliveredImageFormatKey = 20000;

    PHImageResultIsInCloudKey = 0;

    PHImageResultWantedImageFormatKey = 20002;

}

可以获得key为PHImageFileSandboxExtensionTokenKey的值,再对其处理如下

NSString * sandboxExtensionTokenKey = info[@"PHImageFileSandboxExtensionTokenKey"];

                        NSArray * arr = [sandboxExtensionTokenKeycomponentsSeparatedByString:@";"];

                        NSString * filePath = [arr[arr.count - 1]substringFromIndex:9];

这个filPath就是这个视频的地址,


注意⚠️ 现在又遇到这个问题,我想在这个方法的block之外用这个地址,但这时这个地址已经无效,只有在block之内有效,要想在block之外有效,必须在这个区域有个变量来保存这个方法得到的asset,这个地址才有效


你可能感兴趣的:(PHAsset获得视频URL,遇到的一些问题)