AliyunIRecorder
@interface AliyunIRecorder : NSObject
录制类,提供录制能力,短视频的核心类之一
-
预览视图
必须设置
Declaration
Objective-C
@property(nonatomic, strong) UIView *preview -
视频的输出路径
必须设置
Declaration
Objective-C
@property (nonatomic, copy) NSString *outputPath; -
taskPath文件夹路径
需要保证文件夹已经创建,必须设置
Declaration
Objective-C
@property (nonatomic, copy) NSString *taskPath; -
Delegate
Declaration
Objective-C
@property (nonatomic, weak) id<AliyunIRecorderDelegate> delegate; -
美颜状态是否开启
Declaration
Objective-C
@property (nonatomic) BOOL beautifyStatus; -
设置美颜度 [0,100]
Declaration
Objective-C
@property (nonatomic) int beautifyValue; -
曝光值 [0,1]
Declaration
Objective-C
@property (nonatomic) CGFloat exposureValue; -
前置摄像头采集分辨率
默认:AVCaptureSessionPreset640x480 更多参数参见:AVCaptureSession.h
Declaration
Objective-C
@property (nonatomic, copy) NSString *frontCaptureSessionPreset; -
后置摄像头采集分辨率
默认:AVCaptureSessionPreset1280x720 更多参数参见:AVCaptureSession.h
Declaration
Objective-C
@property (nonatomic, copy) NSString *backCaptureSessionPreset; -
摄像头角度
Declaration
Objective-C
@property (nonatomic) int cameraRotate; -
手动对焦点,相对预览视图的位置
Declaration
Objective-C
@property (nonatomic) CGPoint focusPoint; -
调整变焦倍数
每次调用videoZoomFactor,实际变焦值zoom为设定的1/100 例:调用videoZoomFactor = 10.0f,实际zoom += 0.1f 例:调用videoZoomFactor = -5.0f,实际zoom -= 0.05f
Declaration
Objective-C
@property (nonatomic) CGFloat videoZoomFactor; -
设置前置摄像头是否支持调整变焦,后置摄像头默认支持变焦,前置摄像头默认不支持变焦 当supportVideoZoomFactorForFrontCamera = YES时,前置摄像头支持变焦
Declaration
Objective-C
@property (nonatomic) BOOL frontCameraSupportVideoZoomFactor; -
录制的视频是否左右翻转
Declaration
Objective-C
@property (nonatomic) BOOL videoFlipH; -
编码方式
0软编 1硬编 iOS强制硬编
Declaration
Objective-C
@property (nonatomic) int encodeMode; -
关键帧间隔,有效区间[0, 9000],其中0和1都表示全I帧
默认5
Declaration
Objective-C
@property (nonatomic) int GOP; -
录制帧率, 取值区间(0,30],区间外的值将视为无效值,依然使用默认值。
默认25
Declaration
Objective-C
@property (nonatomic) int recordFps; -
是否静音
添加音乐后,静音无效
Declaration
Objective-C
@property (nonatomic) BOOL mute; -
视频质量,设置bitrate参数后,该参数无效
Declaration
Objective-C
@property (nonatomic) AliyunVideoQuality videoQuality; -
输出视频码率 bps 最小值200000bps 最大值20000000bps
Declaration
Objective-C
@property (nonatomic) int bitrate; -
提供三种格式:如果设置不是此三值,将会视情况分配此三种格式中的一种 kCVPixelFormatType_420YpCbCr8BiPlanarFullRange, kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange, kCVPixelFormatType_32BGRA, 默认kCVPixelFormatType_420YpCbCr8BiPlanarFullRange格式
Declaration
Objective-C
@property (nonatomic) AliyunIRecorderVideoOutputPixelFormatType outputType; -
是否开启人脸识别
使用自带人脸识别,开启该功能,系统会在检测到有人脸动图加入时自动进行追踪显示
Declaration
Objective-C
@property (nonatomic) BOOL useFaceDetect; -
设置识别人脸的个数 当设置值小于1时,默认为1;当设置值大于3时,默认为3
最大是3个 最小是1个 如果不需要检测人脸 使用:useFaceDetect = NO
Declaration
Objective-C
@property (nonatomic) int faceDetectCount; -
是否同步贴合人脸
同步贴合人脸动图会在同步线程执行,优点是贴合性强,缺点是性能差的设备会有卡顿现象 非同步贴合人脸动图,有点是画面流畅但贴图贴合性不强 默认是YES,6及以下机型建议异步,6以上建议同步
Declaration
Objective-C
@property (nonatomic) BOOL faceDectectSync; -
设备权限
包括麦克风和摄像头权限
Declaration
Objective-C
@property (nonatomic, readonly) AliyunIRecorderDeviceAuthor authorizationStatus; -
手电筒是否可用
Declaration
Objective-C
@property (nonatomic, readonly) BOOL hasTorch; -
电筒模式
Declaration
Objective-C
@property (nonatomic, readonly) AliyunIRecorderTorchMode torchMode; -
获取摄像头位置
Declaration
Objective-C
@property (nonatomic, readonly) AliyunIRecorderCameraPosition cameraPosition; -
获取最大变焦系数
Declaration
Objective-C
@property (nonatomic, readonly) CGFloat videoMaxZoomFactor; -
是否正在录制
Declaration
Objective-C
@property (nonatomic, readonly) BOOL isRecording; -
获取视频片段管理器
Declaration
Objective-C
@property (nonatomic, strong, readonly) AliyunClipManager *clipManager; -
Deprecated
3.19.0废弃
录音是否使用AVAudioSessionModeVideoRecording模式,默认YES
Declaration
Objective-C
@property (nonatomic) BOOL useAudioSessionModeVideoRecording; -
获取版本号
Declaration
Objective-C
+ (NSString *)version;Return Value
版本号
-
初始化
Declaration
Objective-C
- (instancetype)initWithDelegate:(id<AliyunIRecorderDelegate>)delegate videoSize:(CGSize)videoSize;Parameters
delegate代理
videoSize视频分辨率,必须为偶数,不能是奇数,不能使用屏幕分辨率 建议使用的分辨率 320*480,540*960,720*1280
Return Value
AliyunIRecorder 对象
-
开始预览
Declaration
Objective-C
- (void)startPreviewWithPositon:(AliyunIRecorderCameraPosition)cameraPosition;Parameters
cameraPosition摄像头位置(前置、后置)
-
开始预览 默认前置摄像头
Declaration
Objective-C
- (void)startPreview; -
停止预览
Declaration
Objective-C
- (void)stopPreview; -
改变视频分辨率
Declaration
Objective-C
- (void)reStartPreviewWithVideoSize:(CGSize)videoSize;Parameters
videoSize视频分辨率
-
开始录制
Declaration
Objective-C
- (int)startRecording; -
停止录制
是否已停止以回调为准
Declaration
Objective-C
- (void)stopRecording; -
完成录制
是否完成以回调为准
Declaration
Objective-C
- (void)finishRecording; -
结束录制,输出给编辑器 API_AVAILABLE(3.23.0) /** Finish record for editor API_AVAILABLE(3.23.0)
Declaration
Objective-C
- (NSString *)finishRecordingForEdit; -
释放录制资源
Declaration
Objective-C
- (void)destroyRecorder; -
拍摄一张图片 异步获取
image 采集的渲染后图片 rawImage 采集的原始图片
Declaration
Objective-C
- (void)takePhoto:(void (^)(int *, int *))handler; -
切换摄像头
Declaration
Objective-C
- (AliyunIRecorderCameraPosition)switchCameraPosition;Return Value
切换后的摄像头位置
-
循环切换手电筒模式 默认为关 (off —> on —> auto)
Declaration
Objective-C
- (AliyunIRecorderTorchMode)switchTorchMode;Return Value
切换后的手电筒模式
-
切换为指定手电筒模式
Declaration
Objective-C
- (BOOL)switchTorchWithMode:(AliyunIRecorderTorchMode)torchMode;Parameters
torchMode指定模式
Return Value
return YES if success
-
人脸数量的回调
在useFaceDetect开启的状态下生效
Declaration
Objective-C
@property (nonatomic, copy) void (^)(int) faceNumbersCallback; -
人脸追踪 用户可以选择其他人脸识别库,但是传进来的数据须封装成AliyunFacePoint
Declaration
Objective-C
- (void)faceTrack:(NSArray<AliyunFacePoint *> *)facePoints;Parameters
facePoints人脸点数组
-
添加动图
Declaration
Objective-C
- (int)applyPaster:(AliyunEffectPaster *)paster;Parameters
paster动图
-
添加滤镜
Declaration
Objective-C
- (int)applyFilter:(AliyunEffectFilter *)filter;Parameters
filter滤镜
-
添加动效滤镜
Declaration
Objective-C
- (int)applyAnimationFilter:(AliyunEffectFilter *)filter;Parameters
filter滤镜
Return Value
返回值
-
更新动效滤镜
Declaration
Objective-C
- (int)updateAnimationFilter:(AliyunEffectFilter *)filter;Parameters
filter滤镜
Return Value
返回值
-
Deprecated
This method will not be supported any more. Do not use it.
添加mv
Declaration
Objective-C
- (int)applyMV:(AliyunEffectMV *)mv;Parameters
mvmv
Return Value
返回值 只能在录制开始前调用,录制过程或录制完一段或多段后不能调用该接口 Deprecated 不建议使用的API,未来版本将会移除
-
添加水印
Declaration
Objective-C
- (int)applyImage:(AliyunEffectImage *)image;Parameters
image水印
-
添加音乐
Declaration
Objective-C
- (int)applyMusic:(AliyunEffectMusic *)music;Parameters
music音乐
Return Value
错误码 只能在录制开始前调用,录制过程或录制完一段或多段后不能调用该接口
-
设置录制速率
Declaration
Objective-C
- (void)setRate:(CGFloat)rate;Parameters
rate录制速率 建议0.5-2之间
-
删除效果
Declaration
Objective-C
- (void)deletePaster:(AliyunEffectPaster *)paster;Parameters
paster动图
-
删除滤镜
Declaration
Objective-C
- (void)deleteFilter; -
删除动效滤镜
Declaration
Objective-C
- (void)deleteAnimationFilter; -
删除水印
Declaration
Objective-C
- (void)deleteImage:(AliyunEffectImage *)image;Parameters
image水印
-
设置动图、水印的位置
Declaration
Objective-C
- (void)setEffectView:(CGRect)rect effect:(AliyunEffect *)effect;Parameters
rect位置(x,y,width,height)均为比例值 例如播放视频的view的size为(400,400),有动图位置为(50,50,100,100) 则rect参数为(0.125,0.125,0.25,0.25)
effect指定的效果 (目前支持水印和普通动图)
AliyunIRecorder Class Reference