美文网首页iOS开发资料收集
iOS 视频录制/系统拍照

iOS 视频录制/系统拍照

作者: ErHu丶 | 来源:发表于2017-06-05 16:21 被阅读376次

效果:

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并修改添加了一些方法,在此引用膜拜大神

相关文章

网友评论

  • 凡尘一笑:兄弟 问你个事情 录制好的视频 我怎么拿到这个是视频上传到服务器?
    ErHu丶:上传服务器都是上传data数据(你可以拿到的), 上传方法都是看公司要求,我们就用的oss(阿里云)服务上传的.

本文标题:iOS 视频录制/系统拍照

本文链接:https://www.haomeiwen.com/subject/qlgifxtx.html