ios-视频压缩

其实有的时候我们可能会需要拍一段小视频去上传到服务器,这个时候如果我们直接使用原始的文件的话,那个视频大小会很大,可能上传多了服务器压力大。

所以这个时候我们就要去做相应的导出操作,导出之后,再去相应的路径获取,然后再去上传。具体步骤我们大概应该可以分为如下步骤

1、首先要先去选择这个视频,选择的操作就和选择照片的操作是差不多的

2、去设置媒体的类型,如果不去设置,我们会找不到视频。

3、我们在代理方法中进行压缩,首先要先去获取资源,然后根据这个资源去创建出会话对象

再去设置导出的路径,设置导出的类型,开始导出。

代码如下所示,在这里我们需要去导入两个框架#import <MobileCoreServices/MobileCoreServices.h>
#import <AVKit/AVKit.h>

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    //1、首先先去判断资源可不可用
    if(![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary])
    {
        return;
    }
    //2、创建图像选择器
    UIImagePickerController * picker = [UIImagePickerController new];
    
    //3、设置类型
    picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    
    //4、设置媒体类型,这样才可以去找到我们需要的视频文件,否则就找不到
    picker.mediaTypes = @[(NSString *)kUTTypeMovie];
    
    //5、设置代理
    picker.delegate = self;
    
    //6、模态弹出
    [self presentViewController:picker animated:YES completion:nil];
}

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info
{
    //1、获取媒体类型
    NSString * mediaType = info[UIImagePickerControllerMediaType];
    
    //2、获取视频的地址
    id url = info[UIImagePickerControllerMediaURL];
    //判断媒体类型
    if([mediaType isEqualToString:(NSString *)kUTTypeMovie])
    {
    //3、开始导出,也就是进行压缩
    [self exportWithURL:url];
        
    }
}
-(void)exportWithURL:(NSURL *)url
{
    //1、获取资源
    AVAsset * asset = [AVAsset assetWithURL:url];
    
    //2、根据资源,去创建会话对象
    AVAssetExportSession * session = [[AVAssetExportSession alloc]initWithAsset:asset presetName:AVAssetExportPresetLowQuality];
    
    //3、设置导出的路径
    session.outputURL = [NSURL fileURLWithPath:[NSTemporaryDirectory()stringByAppendingPathComponent:@"test.mov"]];
    //4、设置导出的类型
    session.outputFileType = AVFileTypeQuickTimeMovie;
    
    //5、开始导出
    [session exportAsynchronouslyWithCompletionHandler:^{
        NSLog(@"导出成功");
    }];
                         
}
我们如何方便的查看这个视频是否导出到我们指定的目录下?有以下步骤


选择真机然后点击下面的Download Container


然后会得到下面这个文件,点击显示包内容就可以了


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值