获取相册视频并保存到指定路径

需要用到两个系统框架

Photos/Photos.h 用来获取系统的相册信息

AVFoundation/AVFoundation.h 用来获取视频信息

首先获取相册中的所有视频

NSMutableArray *videoArray = [NSMutableArray array];
PHFetchOptions *option = [[PHFetchOptions alloc] init];
    option.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:NO]];
    PHFetchResult *result = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeVideo options:option];
    
    [result enumerateObjectsUsingBlock:^(PHAsset *  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
        //这个obj即PHAsset对象,判断 obj 的类型,如果是 video,就添加到自定义的数组中记录
        if (obj.mediaType == PHAssetMediaTypeVideo) {
          [videoArray addObject:obj];
        }
    }];
复制代码

获取视频对应的 AVAsset

- (void)requestVideo:(PHAsset *)PHAsset compeletion:(void (^)(AVAsset *))compeletion {
    PHVideoRequestOptions *options = [[PHVideoRequestOptions alloc] init];
    options.version = PHImageRequestOptionsVersionCurrent;
    options.deliveryMode = PHVideoRequestOptionsDeliveryModeAutomatic;
    [[PHImageManager defaultManager] requestAVAssetForVideo:PHAsset options:options resultHandler:^(AVAsset * _Nullable asset, AVAudioMix * _Nullable audioMix, NSDictionary * _Nullable info) {
        compeletion(asset);
    }];
}
复制代码

利用AVAsset获取视频的信息

NSString *videoPath = @"";// 需要保存到路径
AVAssetExportSession *session = [AVAssetExportSession exportSessionWithAsset:asset presetName:AVAssetExportPresetHighestQuality];
        session.outputFileType = AVFileTypeMPEG4;// 输出的视频格式
        session.outputURL = [NSURL fileURLWithPath:videoPath]; // 这个就是你可以导出的文件路径了。
        
        [session exportAsynchronouslyWithCompletionHandler:^{
				保存成功后的回调        
        }];
复制代码

转载于:https://juejin.im/post/5a93c949f265da4e7c18a9ce

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值