iOS 视频录制/系统拍照

效果:

GIF

1.视频录制

功能说明:

  • 视频录制,可设置录制的最长时间,和最短时间
  • 可保存视频封面图(中间帧)和视频(.MP4)到相册
  • 视频路径,视频大小、封面的路径会打印出来
  • 进度条是用定时器写的
  • 可切换摄像头
  • 视频录制完成后会自动播放,播放模式为:竖屏录制时:高16:宽9 、横屏录制时高9 :宽16 (判定模式为点击录制的那一瞬间手机旋转的状态)

使用:

#import "VideoRecordManager.h"

- (void)viewDidLoad {
    [super viewDidLoad];
     self.manager = [[VideoRecordManager alloc] initWithSuperView:self.backView];
     self.manager.delegate = self;
}

- (void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    //打开相机
    [self.manager openVideo];
}

- (void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];
    //关闭相机
    [self.manager closeVideo];
}

提供的方法:

/**
 开启摄像头
 */
- (void)openVideo;

/**
 关闭摄像头
 */
- (void)closeVideo;

/**
 切换摄像头
 */
- (void)exchangeCamera;

/**
 开始录像
 */
- (void)startVideoRecord;

/**
 停止录像
 */
- (void)stopVideoRecord;

/**
 删除录像
 */
- (void)deleteVideoRecord;

/**
 获取视频数据路径
 
 @param callback 回调
- (void)getVideoAndThumbnailPathWithBlock:(void (^)(NSString *videoPath , NSString *thumbnailPath))callback;
 */

@protocol VideoRecordManagerDelegate <NSObject>

@optional;

/**
 视频录制过短回调
 
 @param manager self
 */
- (void)recordTimerTooShort:(VideoRecordManager *)manager;

/**
 录制视频时间达到限制
 
 @param manager self
 */
- (void)recordTimerEnd:(VideoRecordManager *)manager;

/**
 录制进度改变
 
 @param progress progress(0 ~ 1)
 */
- (void)recordProgressChange:(CGFloat)progress;

2.系统拍照:

功能说明:

  • 拍照的AVCaptureVideoPreviewLayer大小为 4 : 3,根据需求自行修改~
  • 在拍照前监听手机旋转的状态,横拍完成后会旋转过来.

使用:

#import "ERCameraManager.h"
/**
 初始化
 
 @param superView 父视图
 @return self
 */
- (instancetype)initWithSuperView:(UIView *)superView;

/**
 开启摄像
 */
- (void)openVideo;

/**
 关闭摄像
 */
- (void)closeVideo;

/**
 拍照
 */
- (void)takePicture;

/**
 取消
 */
- (void)cannel;

/**
 切换摄像头
 */
- (void)exchangeCamera;

/**
 获取原图

 @return image
 */
- (UIImage *)getOriginalImage;

Demo

GitHub - ERVideoRecord 喜欢请给个Star ~ 感谢~

关于视频录制核心代码我参考的是PKShortVideo并修改添加了一些方法,在此引用膜拜大神

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容