短视频按压拍摄自定义方案(GinCamera/GinVideoCaptureViewController)

短视频按压拍摄自定义方案(GinCamera/GinVideoCaptureViewController)

DEMO地址
GinCamera

这里只做方案思路的讲解,具体实现,请参考DEMO
在这里插入图片描述

实现的功能有点类似于微信的短视频拍摄功能

1.按下拍摄按键,开始拍摄。
2.松开拍摄按键,保存内容。
3.每一段拍摄结束可以选择放弃,或者结束拍摄。
4.提供闪光灯功能,摄像头切换功能。

逻辑部分

可以看出,主要逻辑部分都集中于拍摄过程,下面细分一下上述拍摄过程中可能出现的各种情况

按下拍摄按键

视频开始拍摄,有两种情况

  1. 拍摄正常,可以继续拍摄,
  2. 拍摄时间超过视频要求的最大时长,这时候就需要对视频做出停止操作,并且保存拍摄超长前的所有内容。拍摄时间超过视频要求的最大时长,这时候就需要对视频做出停止操作,并且保存拍摄超长前的所有内容。
松开拍摄按钮

视频拍摄结束,也有两种情况

  1. 拍摄时间过短,放弃这段内容,返回准备拍摄状态
  2. 拍摄时间符合要求,记录片段视频时长,显示视频删除与完成拍摄的两个入口,供用户选择拍摄时间符合要求,记录片段视频时长,显示视频删除与完成拍摄的两个入口,供用户选择
用户选择删除当前片段

这个方案中,短视频是由多个片段视频合成的,有一个游标来控制片段之间的顺序,当用户删除片段,则需要将游标前移一位(游标前方无元素时,则不前移),并删除片段。

用户选择完成视频拍摄

将多个片段的短视频进行合成,这里用了AVMutableComposition,将片段之间的音轨和视频进行合成,生成一个完整短视频。用AVAssetImageGenerator,抽取视频第一帧,作为视频预览图。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值