效果:

GIF
1.視頻錄制
功能說明:
- 視頻錄制,可設(shè)置錄制的最長時間,和最短時間
- 可保存視頻封面圖(中間幀)和視頻(.MP4)到相冊
- 視頻路徑,視頻大小、封面的路徑會打印出來
- 進度條是用定時器寫的
- 可切換攝像頭
- 視頻錄制完成后會自動播放,播放模式為:豎屏錄制時:高16:寬9 、橫屏錄制時高9 :寬16 (判定模式為點擊錄制的那一瞬間手機旋轉(zhuǎn)的狀態(tài))
使用:
#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];
//關(guān)閉相機
[self.manager closeVideo];
}
提供的方法:
/**
開啟攝像頭
*/
- (void)openVideo;
/**
關(guān)閉攝像頭
*/
- (void)closeVideo;
/**
切換攝像頭
*/
- (void)exchangeCamera;
/**
開始錄像
*/
- (void)startVideoRecord;
/**
停止錄像
*/
- (void)stopVideoRecord;
/**
刪除錄像
*/
- (void)deleteVideoRecord;
/**
獲取視頻數(shù)據(jù)路徑
@param callback 回調(diào)
- (void)getVideoAndThumbnailPathWithBlock:(void (^)(NSString *videoPath , NSString *thumbnailPath))callback;
*/
@protocol VideoRecordManagerDelegate <NSObject>
@optional;
/**
視頻錄制過短回調(diào)
@param manager self
*/
- (void)recordTimerTooShort:(VideoRecordManager *)manager;
/**
錄制視頻時間達到限制
@param manager self
*/
- (void)recordTimerEnd:(VideoRecordManager *)manager;
/**
錄制進度改變
@param progress progress(0 ~ 1)
*/
- (void)recordProgressChange:(CGFloat)progress;
2.系統(tǒng)拍照:
功能說明:
- 拍照的
AVCaptureVideoPreviewLayer大小為 4 : 3,根據(jù)需求自行修改~ - 在拍照前監(jiān)聽手機旋轉(zhuǎn)的狀態(tài),橫拍完成后會旋轉(zhuǎn)過來.
使用:
#import "ERCameraManager.h"
/**
初始化
@param superView 父視圖
@return self
*/
- (instancetype)initWithSuperView:(UIView *)superView;
/**
開啟攝像
*/
- (void)openVideo;
/**
關(guān)閉攝像
*/
- (void)closeVideo;
/**
拍照
*/
- (void)takePicture;
/**
取消
*/
- (void)cannel;
/**
切換攝像頭
*/
- (void)exchangeCamera;
/**
獲取原圖
@return image
*/
- (UIImage *)getOriginalImage;
Demo
GitHub - ERVideoRecord 喜歡請給個Star ~ 感謝~
關(guān)于視頻錄制核心代碼我參考的是PKShortVideo并修改添加了一些方法,在此引用膜拜大神