短视频录制类
| class TXUGCRecord |
| - (TXBeautyManager *) getBeautyManager |
获取美颜管理对象
通过美颜管理,您可以使用以下功能:
| - (void) pauseAudioSession |
在录制的过程中,如果您使用了其他播放器预览视频,AudioSession可能会冲突,会导致录制/播放异常,因此, 当使用其他播放器预览视频的时候,请先调用 pauseAudioSession 当停止视频预览,重新录制的时候,请调用 resumeAudioSession
| - (BOOL) pauseBGM |
暂停播放背景音乐 [精简版不支持]
| - (int) pauseRecord |
暂停录制短视频(注:切后台时需保持后台运行状态) 每一次暂停录制都会生成一个视频片段(>100ms有效,<= 100ms 会被认为是无效视频,不会被存放在视频分片里面),您可以在partsManager里面管理这些视频片段
| - (int) pauseRecord: | (void(^)(void)) | complete |
4.9 版本后pauseRecord 修改为了异步调用,请在收到 complete 回调后再去 partsManager 获取当前的视频片段信息 注意:resumeRecord 不需要等到 pauseRecord 的 complete 之后再调用,正常顺序调用即可
| - (BOOL) playBGMFromTime: | (float) | startTime | |
| toTime: | (float) | endTime | |
| withBeginNotify: | (void(^)(NSInteger errCode)) | beginNotify | |
| withProgressNotify: | (void(^)(NSInteger progressMS, NSInteger durationMS)) | progressNotify | |
| andCompleteNotify: | (void(^)(NSInteger errCode)) | completeNotify | |
播放背景音乐 [精简版不支持] 必须在startCamera之后调用
| startTime | 音乐播放起始时间 |
| endTime | 音乐播放结束时间 |
| beginNotify | 音乐播放开始的回调 |
| progressNotify | 音乐播放的进度回调,单位毫秒 |
| completeNotify | 音乐播放结束的回调 |
| - (void) resumeAudioSession |
重启SDK内部的 AudioSession
| - (BOOL) resumeBGM |
继续播放背景音乐 [精简版不支持]
| - (int) resumeRecord |
恢复录制短视频
| - (void) selectMotionTmpl: | (NSString *) | tmplName | |
| inDir: | (NSString *) | tmplDir | |
设置动效 (增值版本有效,普通版本设置此参数无效)[仅限企业版及企业版Pro]
| tmplName | 动效名称 |
| tmplDir | 动效上层文件路径 |
| - (void) setAspectRatio: | (TXVideoAspectRatio) | videoRatio |
设置视频录制比例
| videoRatio | : 3:4 9:16 1:1 |
| - (void) setBeautyStyle: | (TXVideoBeautyStyle) | beautyStyle | |
| beautyLevel: | (float) | beautyLevel | |
| whitenessLevel: | (float) | whitenessLevel | |
| ruddinessLevel: | (float) | ruddinessLevel | |
设置美颜 和 美白 效果级别
| beautyStyle | : 美颜风格,TXVideoBeautyStyle类型。 |
| beautyLevel | : 美颜级别取值范围 0 ~ 9; 0 表示关闭 1 ~ 9值越大 效果越明显。 |
| whitenessLevel | : 美白级别取值范围 0 ~ 9; 0 表示关闭 1 ~ 9值越大 效果越明显。 |
| ruddinessLevel | : 红润级别取值范围 0 ~ 9; 0 表示关闭 1 ~ 9值越大 效果越明显。 |
| - (CGFloat) setBGM: | (NSString *) | path |
设置背景音乐文件 [精简版不支持] 注意:录制过程不能切换背景音乐,可能会导致异常,如果需要切换音乐,请先停止视频录制
| path | 音乐文件路径,一定要是app对应的document目录下面的路径,否则文件会读取失败 return: 音乐时长 s (返回值为0,表示BGM格式不支持或则音频解析失败) |
| - (CGFloat) setBGMAsset: | (AVAsset *) | asset |
设置背景音乐文件 [精简版不支持] 注意:录制过程不能切换背景音乐,可能会导致异常,如果需要切换音乐,请先停止视频录制
| asset | 音乐属性asset,从系统媒体库loading出来的音乐,可以直接传入对应的音乐属性,会极大的降低音乐从系统媒体库loading的时间,具体请参考demo用法 return: 音乐时长 s (返回值为0,表示BGM格式不支持或则音频解析失败) |
| - (void) setBGMLoop: | (BOOL) | isLoop |
设置背景音乐是否循环播放 [精简版不支持]
| isLoop | 是否循环播放 |
| - (BOOL) setBGMVolume: | (float) | volume |
设置背景音乐的音量大小,播放背景音乐混音时使用,用来控制背景音音量大小 [精简版不支持]
| volume | 音量大小,1为正常音量,建议值为0~2,如果需要调大背景音量可以设置更大的值 注意:这个接口目前在playBGM之后才生效 |
| - (void) setChinLevel: | (float) | chinLevel |
设置下巴拉伸或收缩(增值版本有效,普通版本设置此参数无效)[仅限企业版Pro]
| chinLevel | 下巴拉伸或收缩取值范围 -9 ~ 9; 0 表示关闭 -9收缩 ~ 9拉伸。 |
| - (void) setEyeScaleLevel: | (float) | eyeScaleLevel |
设置大眼级别(增值版本有效,普通版本设置此参数无效) [仅限企业版Pro]
| eyeScaleLevel | 大眼级别取值范围 0 ~ 9; 0 表示关闭 1 ~ 9值越大 效果越明显。 |
| - (void) setFaceScaleLevel: | (float) | faceScaleLevel |
设置瘦脸级别(增值版本有效,普通版本设置此参数无效)[仅限企业版Pro]
| faceScaleLevel | 瘦脸级别取值范围 0 ~ 9; 0 表示关闭 1 ~ 9值越大 效果越明显。 |
| - (void) setFaceShortLevel: | (float) | faceShortlevel |
设置短脸(增值版本有效,普通版本设置此参数无效)[仅限企业版Pro]
| faceShortlevel | 短脸级别取值范围 0 ~ 9; 0 表示关闭 1 ~ 9值越大 效果越明显。 |
| - (void) setFaceVLevel: | (float) | faceVLevel |
设置V脸(增值版本有效,普通版本设置此参数无效)[仅限企业版Pro]
| faceVLevel | V脸级别取值范围 0 ~ 9; 0 表示关闭 1 ~ 9值越大 效果越明显。 |
| - (void) setFilter: | (UIImage *) | filterImage |
设置指定素材滤镜特效 demo 用到的滤镜查找表图片位于RTMPiOSDemo/RTMPiOSDemo/resource/FilterResource.bundle中
| filterImage | 指定素材,即颜色查找表图片。注意:一定要用png格式!!! |
| - (void) setFilter: | (UIImage *) | leftFilter | |
| leftIntensity: | (CGFloat) | leftIntensity | |
| rightFilter: | (UIImage *) | rightFilter | |
| rightIntensity: | (CGFloat) | rightIntensity | |
| leftRatio: | (CGFloat) | leftRatio | |
设置两个滤镜效果 [精简版不支持]
| leftFilter | 左滤镜图片(nil代表无左滤镜效果) |
| leftIntensity | 左滤镜浓度 |
| rightFilter | 右滤镜图片(nil代表无右滤镜效果) |
| rightIntensity | 右滤镜浓度 |
| leftRatio | 左滤镜所占比例 |
| - (void) setFocusPosition: | (float) | eventX | |
| eventY: | (float) | eventY | |
支持外面设置聚焦位置,如果设置了聚焦位置touchFocus,则由外面绘制,sdk不再绘制聚焦图标
| eventX | x坐标 |
| eventY | y坐标 |
| - (void) setGreenScreenFile: | (NSURL *) | file |
| - (void) setHomeOrientation: | (TXVideoHomeOrientation) | homeOrientation |
横竖屏录制 activity竖屏模式,竖屏录制 [[TXUGCRecord shareInstance] setHomeOrientation:VIDEO_HOME_ORIENTATION_DOWN]; [[TXUGCRecord shareInstance] setRenderRotation:0];
activity竖屏模式,home在右横屏录制 [[TXUGCRecord shareInstance] setHomeOrientation:VIDOE_HOME_ORIENTATION_RIGHT]; [[TXUGCRecord shareInstance] setRenderRotation:90];
activity竖屏模式,home在左横屏录制 [[TXUGCRecord shareInstance] setHomeOrientation:VIDEO_HOME_ORIENTATION_LEFT]; [[TXUGCRecord shareInstance] setRenderRotation:270];
activity横屏模式,home在右横屏录制 注意:渲染view要跟着activity旋转 [[TXUGCRecord shareInstance] setHomeOrientation:VIDOE_HOME_ORIENTATION_RIGHT]; [[TXUGCRecord shareInstance] setRenderRotation:0];
activity横屏模式,home在左横屏录制 注意:渲染view要跟着activity旋转 [[TXUGCRecord shareInstance] setHomeOrientation:VIDEO_HOME_ORIENTATION_LEFT]; [[TXUGCRecord shareInstance] setRenderRotation:0]; 设置横竖屏录制,设置后可能会改变视频预览的方向,请调用setRenderRotation 来修本地视预览频流方向,请参考上面注释或则demo示例
| homeOrientation | 横竖屏录制方向 |
| - (BOOL) setMicVolume: | (float) | volume |
设置麦克风的音量大小,播放背景音乐混音时使用,用来控制麦克风音量大小 [精简版不支持]
| volume | 音量大小,1为正常音量,建议值为0~2,如果需要调大音量可以设置更大的值 注意:这个接口目前在playBGM之后才生效 |
| - (void) setMotionMute: | (BOOL) | motionMute |
设置动效静音 (增值版本有效,普通版本设置此参数无效)[仅限企业版及企业版Pro]
| motionMute | YES 静音, NO 不静音 |
| - (void) setMute: | (BOOL) | isMute |
设置是否静音录制
| - (void) setNoseSlimLevel: | (float) | noseSlimLevel |
设置瘦鼻(增值版本有效,普通版本设置此参数无效)[仅限企业版Pro]
| noseSlimLevel | 瘦鼻级别取值范围 0 ~ 9; 0 表示关闭 1 ~ 9值越大 效果越明显。 |
| - (void) setRecordSpeed: | (TXVideoRecordSpeed) | recordSpeed |
设置录制速率 [精简版不支持]
| - (void) setRenderRotation: | (int) | rotation |
设置预览视频方向
| rotation | 取值为 0 , 90, 180, 270(其他值无效) 表示视频预览向右旋转的角度 设置横竖屏录制,activty旋转可能会改变视频预览的方向,可以设置此参数让视频预览回到正方向,请参考上面注释或则demo示例 |
| - (BOOL) setReverbType: | (TXVideoReverbType) | reverbType |
设置混响效果 [精简版不支持]
| reverbType | 混响类型 ,详见 TXReverbType |
| - (void) setSpecialRatio: | (float) | specialRatio |
设置滤镜效果程度
| specialRatio | 从0到1,越大滤镜效果越明显,默认取值0.5 |
| - (void) setVideoBitrate: | (int) | bitrate |
切换视频录制码率 注意:需要在startRecord 之前设置,录制过程中设置无效
| bitrate | 视频码率 |
| - (void) setVideoRenderMode: | (TXVideoRenderMode) | renderMode |
设置视频渲染模式,startCamera 之后调用有效
| renderMode | 渲染模式 |
| - (void) setVideoResolution: | (TXVideoResolution) | resolution |
切换视频录制分辨率,startCamera 之后调用有效 注意:需要在startRecord 之前设置,录制过程中设置无效
| resolution | 视频分辨率 |
| - (BOOL) setVoiceChangerType: | (TXVideoVoiceChangerType) | voiceChangerType |
设置变声类型 [精简版不支持]
| voiceChangerType | 变声类型, 详见 TXVoiceChangerType 注意:变声目前仅支持 AUDIO_SAMPLERATE_8000 , AUDIO_SAMPLERATE_16000 ,AUDIO_SAMPLERATE_48000 三种采样率 |
| - (void) setWaterMark: | (UIImage *) | waterMark | |
| normalizationFrame: | (CGRect) | normalizationFrame | |
设置全局水印 [精简版不支持]
| waterMark | 全局水印图片 |
| normalizationFrame | 水印相对于视频图像的归一化frame,x,y,width,height 取值范围 0~1; height不用设置,sdk内部会根据水印宽高比自动计算height; 比如视频图像大小为(540,960) frame设置为(0.1,0.1,0.1,0),水印的实际像素坐标为(540 *,960 * 0.1,540 * 0.1 ,540 * 0.1 * waterMark.size.height / waterMark.size.width) |
| - (void) setZoom: | (CGFloat) | distance |
调整焦距,startCamera 之后调用有效
| distance | 取值范围 1~5 ,当为1的时候为最远视角(正常镜头),当为5的时候为最近视角(放大镜头),这里最大值推荐为5,超过5后视频数据会变得模糊不清 |
| + (TXUGCRecord*) shareInstance |
获取单例
| - (int) snapshot: | (void(^)(UIImage *)) | snapshotCompletionBlock |
截图/拍照,startCamera 之后调用有效 [精简版不支持]
| snapshotCompletionBlock | 完成回调 |
| - (int) startCameraCustom: | (TXUGCCustomConfig *) | config | |
| preview: | (UIView *) | preview | |
开始画面预览
| config | 预览参数 |
| preview | 预览画面的父vie |
| - (int) startCameraSimple: | (TXUGCSimpleConfig *) | config | |
| preview: | (UIView *) | preview | |
开始画面预览
| config | 预览参数 |
| preview | 预览画面的父view |
| - (int) startRecord |
开始录制短视频,SDK内部会自动生成视频路经,在TXVideoRecordListener里面返回
| 返回值 | 涵义 |
|---|---|
| -1 | 正在录制短视频 |
| -2 | videoRecorder初始化失败 |
| -3 | 摄像头没有打开 |
| -4 | 麦克风没有打开 |
| -5 | licence 验证失败,您可以通过 getLicenceInfo 接口查询licence信息, |
| -6 | videoPath 为nil |
| -7 | coverPath 为nil |
| - (int) startRecord: | (NSString *) | videoPath | |
| coverPath: | (NSString *) | coverPath | |
开始录制短视频
| videoPath | 视频文件输出路径 |
| coverPath | 封面文件输出路径 |
| 返回值 | 涵义 |
|---|---|
| -1 | 正在录制短视频 |
| -2 | videoRecorder初始化失败 |
| -3 | 摄像头没有打开 |
| -4 | 麦克风没有打开 |
| -5 | licence 验证失败,您可以通过 getLicenceInfo 接口查询licence信息, |
| -6 | videoPath 为nil |
| -7 | coverPath 为nil |
| - (int) startRecord: | (NSString *) | videoPath | |
| videoPartsFolder: | (NSString *) | videoPartsFolder | |
| coverPath: | (NSString *) | coverPath | |
开始录制短视频
| videoPath | 视频文件输出路径 |
| videoPartsFolder | 分片视频存储目录 |
| coverPath | 封面文件输出路径 |
| 返回值 | 涵义 |
|---|---|
| -1 | 正在录制短视频 |
| -2 | videoRecorder初始化失败 |
| -3 | 摄像头没有打开 |
| -4 | licence 验证失败,您可以通过 getLicenceInfo 接口查询licence信息, |
| -6 | videoPath 为nil |
| -7 | coverPath 为nil |
| - (BOOL) stopBGM |
停止播放背景音乐 [精简版不支持]
| - (void) stopCameraPreview |
结束画面预览
| - (int) stopRecord |
结束录制短视频,SDK会合成所有视频分片,生成最终视频
| - (BOOL) switchCamera: | (BOOL) | isFront |
切换前后摄像头,startCamera 之后调用有效
| isFront | YES 切换到前置摄像头, NO 切换到后置摄像头 |
| - (BOOL) toggleTorch: | (BOOL) | enable |
打开闪关灯,startCamera 之后调用有效
| enable | YES, 打开 NO, 关闭. |
|
readnonatomicstrong |
多段录制的管理
|
readwritenonatomicweak |
视频录制的委托对象,可以获取录制进度等
|
readwritenonatomicweak |
视频画面处理的委托对象,可以获取视频画面的OpenGL纹理ID