短视频录制类
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