TXUGCRecord.h 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490
  1. #import <Foundation/Foundation.h>
  2. #import <AVFoundation/AVFoundation.h>
  3. #import <UIKit/UIKit.h>
  4. #import "TXUGCRecordTypeDef.h"
  5. #import "TXUGCRecordListener.h"
  6. #import "TXUGCPartsManager.h"
  7. #import "TXVideoCustomProcessDelegate.h"
  8. #import "TXBeautyManager.h"
  9. #define TXUGC_DEPRECAETD_BEAUTY_API __deprecated_msg("Use getBeautyManager instead.")
  10. /**********************************************
  11. ************** 短视频录制 **************
  12. **********************************************/
  13. /// @defgroup TXUGCRecord_ios TXUGCRecord
  14. /// 短视频录制类
  15. /// @{
  16. @interface TXUGCRecord : NSObject
  17. /// 视频录制的委托对象,可以获取录制进度等
  18. /// @see TXUGCRecordListener
  19. @property (nonatomic, weak) id<TXUGCRecordListener> recordDelegate;
  20. /// 视频画面处理的委托对象,可以获取视频画面的OpenGL纹理ID
  21. /// @see TXVideoCustomProcessListener
  22. @property (nonatomic, weak) id<TXVideoCustomProcessDelegate> videoProcessDelegate;
  23. /// 多段录制的管理
  24. /// @see TXUGCPartsManager
  25. @property (nonatomic, strong, readonly) TXUGCPartsManager *partsManager;
  26. /// @name 实例化
  27. /// 获取单例
  28. + (TXUGCRecord*) shareInstance;
  29. ////////////////////////////////////////////////////////////////////////////////////////////////
  30. /////////////////////////////////////////摄像头,麦克风相关逻辑////////////////////////////////////////////
  31. ////////////////////////////////////////////////////////////////////////////////////////////////
  32. #pragma mark - 摄像头,麦克风相关逻辑
  33. /** @name 摄像头,麦克风相关逻辑 */
  34. /*
  35. * 获取licence信息
  36. * 请使用 [TXUGCBase getLicenceInfo]
  37. */
  38. //- (NSString *)getLicenceInfo;
  39. /**
  40. 开始画面预览
  41. @param config 预览参数
  42. @param preview 预览画面的父view
  43. @see TXUGCSimpleConfig
  44. @return 0 成功, -1 摄像头尚未关闭 请先调用stopCameraPreview关闭, -2 编码器初始化失败
  45. */
  46. - (int) startCameraSimple:(TXUGCSimpleConfig*)config preview:(UIView *)preview;
  47. /**
  48. 开始画面预览
  49. @param config 预览参数
  50. @param preview 预览画面的父vie
  51. @see TXUGCCustomConfig
  52. @return 0 成功, -1 摄像头尚未关闭 请先调用stopCameraPreview关闭, -2 编码器初始化失败
  53. */
  54. - (int) startCameraCustom:(TXUGCCustomConfig*)config preview:(UIView *)preview;
  55. /**
  56. 切换视频录制分辨率,startCamera 之后调用有效
  57. 注意:需要在startRecord 之前设置,录制过程中设置无效
  58. @param resolution 视频分辨率
  59. */
  60. - (void) setVideoResolution:(TXVideoResolution)resolution;
  61. /**
  62. 设置视频渲染模式,startCamera 之后调用有效
  63. @param renderMode 渲染模式
  64. */
  65. - (void) setVideoRenderMode:(TXVideoRenderMode)renderMode;
  66. /**
  67. 切换视频录制码率
  68. 注意:需要在startRecord 之前设置,录制过程中设置无效
  69. @param bitrate 视频码率
  70. */
  71. - (void) setVideoBitrate:(int)bitrate;
  72. /**
  73. 调整焦距,startCamera 之后调用有效
  74. @param distance 取值范围 1~5 ,当为1的时候为最远视角(正常镜头),当为5的时候为最近视角(放大镜头),这里最大值推荐为5,超过5后视频数据会变得模糊不清
  75. */
  76. - (void) setZoom:(CGFloat)distance;
  77. /**
  78. 切换前后摄像头,startCamera 之后调用有效
  79. @param isFront YES 切换到前置摄像头, NO 切换到后置摄像头
  80. @return YES 切换成功, NO 切换失败。
  81. */
  82. - (BOOL) switchCamera:(BOOL)isFront;
  83. /** 打开闪关灯,startCamera 之后调用有效
  84. @param enable YES, 打开 NO, 关闭.
  85. @return YES 打开成功, NO 打开失败。
  86. */
  87. - (BOOL) toggleTorch:(BOOL)enable;
  88. /// 结束画面预览
  89. - (void) stopCameraPreview;
  90. ////////////////////////////////////////////////////////////////////////////////////////////////
  91. /////////////////////////////////////////录制相关逻辑/////////////////////////////////////////////
  92. ////////////////////////////////////////////////////////////////////////////////////////////////
  93. #pragma mark - 录制相关逻辑
  94. /** @name 录制相关逻辑 */
  95. /** 横竖屏录制
  96. //activity竖屏模式,竖屏录制
  97. [[TXUGCRecord shareInstance] setHomeOrientation:VIDEO_HOME_ORIENTATION_DOWN];
  98. [[TXUGCRecord shareInstance] setRenderRotation:0];
  99. //activity竖屏模式,home在右横屏录制
  100. [[TXUGCRecord shareInstance] setHomeOrientation:VIDOE_HOME_ORIENTATION_RIGHT];
  101. [[TXUGCRecord shareInstance] setRenderRotation:90];
  102. //activity竖屏模式,home在左横屏录制
  103. [[TXUGCRecord shareInstance] setHomeOrientation:VIDEO_HOME_ORIENTATION_LEFT];
  104. [[TXUGCRecord shareInstance] setRenderRotation:270];
  105. //activity横屏模式,home在右横屏录制 注意:渲染view要跟着activity旋转
  106. [[TXUGCRecord shareInstance] setHomeOrientation:VIDOE_HOME_ORIENTATION_RIGHT];
  107. [[TXUGCRecord shareInstance] setRenderRotation:0];
  108. //activity横屏模式,home在左横屏录制 注意:渲染view要跟着activity旋转
  109. [[TXUGCRecord shareInstance] setHomeOrientation:VIDEO_HOME_ORIENTATION_LEFT];
  110. [[TXUGCRecord shareInstance] setRenderRotation:0];
  111. */
  112. /** 设置横竖屏录制,设置后可能会改变视频预览的方向,请调用setRenderRotation 来修本地视预览频流方向,请参考上面注释或则demo示例
  113. * @param homeOrientation 横竖屏录制方向
  114. * @warning 需要在startRecord 之前设置,录制过程中设置无效
  115. * @see TXVideoHomeOrientation
  116. */
  117. - (void) setHomeOrientation:(TXVideoHomeOrientation)homeOrientation;
  118. /**
  119. * 设置预览视频方向
  120. * @param rotation 取值为 0 , 90, 180, 270(其他值无效) 表示视频预览向右旋转的角度
  121. 设置横竖屏录制,activty旋转可能会改变视频预览的方向,可以设置此参数让视频预览回到正方向,请参考上面注释或则demo示例
  122. * @warning 需要在 startRecord 之前设置,录制过程中设置无效
  123. */
  124. - (void) setRenderRotation:(int)rotation;
  125. /**
  126. * 设置视频录制比例
  127. * @warning 需要在 startRecord 之前设置,录制过程中设置无效
  128. * @param videoRatio : 3:4 9:16 1:1
  129. */
  130. - (void) setAspectRatio:(TXVideoAspectRatio)videoRatio;
  131. /// 设置录制速率 [精简版不支持]
  132. - (void) setRecordSpeed:(TXVideoRecordSpeed) recordSpeed;
  133. /// 设置是否静音录制
  134. - (void) setMute:(BOOL) isMute;
  135. /**
  136. 开始录制短视频,SDK内部会自动生成视频路经,在TXVideoRecordListener里面返回
  137. @warning 这个接口SDK会自动管理生成的视频和封面,在下次调用startRecord的时候,SDK会自动删除上一次生成的视频和封面
  138. @return
  139. 返回值 | 涵义
  140. ------|------
  141. -1 | 正在录制短视频
  142. -2 | videoRecorder初始化失败
  143. -3 | 摄像头没有打开
  144. -4 | 麦克风没有打开
  145. -5 | licence 验证失败,您可以通过 getLicenceInfo 接口查询licence信息,
  146. -6 | videoPath 为nil
  147. -7 | coverPath 为nil
  148. */
  149. - (int) startRecord;
  150. /**
  151. 开始录制短视频
  152. @param videoPath 视频文件输出路径
  153. @param coverPath 封面文件输出路径
  154. @warning 这个接口客户需要自己管理生成的视频和封面,在不需要视频和封面的时候自行删除
  155. @return
  156. 返回值 | 涵义
  157. ------|------
  158. -1 | 正在录制短视频
  159. -2 | videoRecorder初始化失败
  160. -3 | 摄像头没有打开
  161. -4 | 麦克风没有打开
  162. -5 | licence 验证失败,您可以通过 getLicenceInfo 接口查询licence信息,
  163. -6 | videoPath 为nil
  164. -7 | coverPath 为nil
  165. */
  166. - (int) startRecord:(NSString *)videoPath coverPath:(NSString *)coverPath;
  167. /**
  168. 开始录制短视频
  169. @param videoPath 视频文件输出路径
  170. @param videoPartsFolder 分片视频存储目录
  171. @param coverPath 封面文件输出路径
  172. @warning 这个接口客户需要自己管理生成的视频和封面,在不需要视频和封面的时候自行删除
  173. @return
  174. 返回值 | 涵义
  175. ------|------
  176. -1 | 正在录制短视频
  177. -2 | videoRecorder初始化失败
  178. -3 | 摄像头没有打开
  179. -4 | licence 验证失败,您可以通过 getLicenceInfo 接口查询licence信息,
  180. -6 | videoPath 为nil
  181. -7 | coverPath 为nil
  182. */
  183. - (int)startRecord:(NSString *)videoPath videoPartsFolder:(NSString *)videoPartsFolder coverPath:(NSString *)coverPath;
  184. /**
  185. 暂停录制短视频(注:切后台时需保持后台运行状态)
  186. 每一次暂停录制都会生成一个视频片段(>100ms有效,<= 100ms 会被认为是无效视频,不会被存放在视频分片里面),您可以在partsManager里面管理这些视频片段
  187. @return 0 成功, -1 不存在录制任务, -2 videoRecorder未初始化
  188. */
  189. - (int) pauseRecord;
  190. /**
  191. 4.9 版本后pauseRecord 修改为了异步调用,请在收到 complete 回调后再去 partsManager 获取当前的视频片段信息
  192. 注意:resumeRecord 不需要等到 pauseRecord 的 complete 之后再调用,正常顺序调用即可
  193. @return 0 成功, -1 不存在录制任务, -2 videoRecorder未初始化
  194. */
  195. - (int) pauseRecord:(void(^)(void))complete;
  196. /**
  197. 恢复录制短视频
  198. @return 0 成功, -1 不存在录制任务, -2 videoRecorder未初始化
  199. */
  200. - (int) resumeRecord;
  201. /**
  202. * 结束录制短视频,SDK会合成所有视频分片,生成最终视频
  203. * @return 0 成功, -1 不存在录制任务, -2 videoRecorder未初始化
  204. * @warning 生成最终视频后,当您不再使用录制过程中的生成的视频分片,请主动调用TXUGCPartsManager -> deleteAllParts 删除,否则视频分片会一直存在本地,如果程序没有重启,下次录制SDK也会默认加载当前视频分片
  205. */
  206. -(int) stopRecord;
  207. /**
  208. * 在录制的过程中,如果您使用了其他播放器预览视频,AudioSession可能会冲突,会导致录制/播放异常,因此,
  209. * 当使用其他播放器预览视频的时候,请先调用 pauseAudioSession
  210. * 当停止视频预览,重新录制的时候,请调用 resumeAudioSession
  211. */
  212. -(void) pauseAudioSession;
  213. /// 重启SDK内部的 AudioSession
  214. -(void) resumeAudioSession;
  215. ////////////////////////////////////////////////////////////////////////////////////////////////
  216. /////////////////////////////////////////录制效果设置相关逻辑///////////////////////////////////////
  217. ////////////////////////////////////////////////////////////////////////////////////////////////
  218. #pragma mark - 录制效果设置相关逻辑
  219. /** @name 录制效果设置相关逻辑 */
  220. /**
  221. 设置全局水印 [精简版不支持]
  222. @param waterMark 全局水印图片
  223. @param normalizationFrame 水印相对于视频图像的归一化frame,x,y,width,height 取值范围 0~1;
  224. height不用设置,sdk内部会根据水印宽高比自动计算height;
  225. 比如视频图像大小为(540,960) frame设置为(0.1,0.1,0.1,0),水印的实际像素坐标为(540 * 0.1,960 * 0.1,540 * 0.1 ,540 * 0.1 * waterMark.size.height / waterMark.size.width)
  226. */
  227. - (void) setWaterMark:(UIImage *)waterMark normalizationFrame:(CGRect)normalizationFrame;
  228. /**
  229. * 获取美颜管理对象
  230. *
  231. * 通过美颜管理,您可以使用以下功能:
  232. * - 设置"美颜风格"、“美白”、“红润”、“大眼”、“瘦脸”、“V脸”、“下巴”、“短脸”、“小鼻”、“亮眼”、“白牙”、“祛眼袋”、“祛皱纹”、“祛法令纹”等美容效果。
  233. * - 调整“发际线”、“眼间距”、“眼角”、“嘴形”、“鼻翼”、“鼻子位置”、“嘴唇厚度”、“脸型”
  234. * - 设置人脸挂件(素材)等动态效果
  235. * - 添加美妆
  236. * - 进行手势识别
  237. */
  238. - (TXBeautyManager *)getBeautyManager;
  239. /**
  240. * 设置美颜 和 美白 效果级别
  241. * @deprecated v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能
  242. * @param beautyStyle : 美颜风格,TXVideoBeautyStyle类型。
  243. * @param beautyLevel : 美颜级别取值范围 0 ~ 9; 0 表示关闭 1 ~ 9值越大 效果越明显。
  244. * @param whitenessLevel : 美白级别取值范围 0 ~ 9; 0 表示关闭 1 ~ 9值越大 效果越明显。
  245. * @param ruddinessLevel : 红润级别取值范围 0 ~ 9; 0 表示关闭 1 ~ 9值越大 效果越明显。
  246. */
  247. - (void) setBeautyStyle:(TXVideoBeautyStyle)beautyStyle
  248. beautyLevel:(float)beautyLevel
  249. whitenessLevel:(float)whitenessLevel
  250. ruddinessLevel:(float)ruddinessLevel TXUGC_DEPRECAETD_BEAUTY_API;
  251. /**
  252. 设置指定素材滤镜特效
  253. demo 用到的滤镜查找表图片位于RTMPiOSDemo/RTMPiOSDemo/resource/FilterResource.bundle中
  254. @deprecated v7.2 版本弃用,请使用 TXBeautyManager 设置素材滤镜
  255. @param filterImage 指定素材,即颜色查找表图片。注意:一定要用png格式!!!
  256. */
  257. -(void) setFilter:(UIImage*)filterImage TXUGC_DEPRECAETD_BEAUTY_API;
  258. /**
  259. * 设置两个滤镜效果 [精简版不支持]
  260. * @param leftFilter 左滤镜图片(nil代表无左滤镜效果)
  261. * @param leftIntensity 左滤镜浓度
  262. * @param rightFilter 右滤镜图片(nil代表无右滤镜效果)
  263. * @param rightIntensity 右滤镜浓度
  264. * @param leftRatio 左滤镜所占比例
  265. */
  266. - (void)setFilter:(UIImage*)leftFilter leftIntensity:(CGFloat)leftIntensity rightFilter:(UIImage*)rightFilter rightIntensity:(CGFloat)rightIntensity leftRatio:(CGFloat)leftRatio;
  267. /**
  268. * 设置滤镜效果程度
  269. *
  270. * @deprecated v7.2 版本弃用,请使用 TXBeautyManager setFilterStrength 接口
  271. * @param specialRatio 从0到1,越大滤镜效果越明显,默认取值0.5
  272. */
  273. -(void) setSpecialRatio:(float)specialRatio TXUGC_DEPRECAETD_BEAUTY_API;
  274. // 以下接口均不支持精简版
  275. /**
  276. * 设置大眼级别(增值版本有效,普通版本设置此参数无效) [仅限企业版Pro]
  277. * @deprecated v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能
  278. * @param eyeScaleLevel 大眼级别取值范围 0 ~ 9; 0 表示关闭 1 ~ 9值越大 效果越明显。
  279. */
  280. -(void) setEyeScaleLevel:(float)eyeScaleLevel TXUGC_DEPRECAETD_BEAUTY_API;
  281. /**
  282. * 设置瘦脸级别(增值版本有效,普通版本设置此参数无效)[仅限企业版Pro]
  283. * @deprecated v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能
  284. * @param faceScaleLevel 瘦脸级别取值范围 0 ~ 9; 0 表示关闭 1 ~ 9值越大 效果越明显。
  285. */
  286. -(void) setFaceScaleLevel:(float)faceScaleLevel TXUGC_DEPRECAETD_BEAUTY_API;
  287. /**
  288. * 设置V脸(增值版本有效,普通版本设置此参数无效)[仅限企业版Pro]
  289. * @deprecated v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能
  290. * @param faceVLevel V脸级别取值范围 0 ~ 9; 0 表示关闭 1 ~ 9值越大 效果越明显。
  291. */
  292. - (void) setFaceVLevel:(float)faceVLevel TXUGC_DEPRECAETD_BEAUTY_API;
  293. /**
  294. * 设置下巴拉伸或收缩(增值版本有效,普通版本设置此参数无效)[仅限企业版Pro]
  295. * @deprecated v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能
  296. * @param chinLevel 下巴拉伸或收缩取值范围 -9 ~ 9; 0 表示关闭 -9收缩 ~ 9拉伸。
  297. */
  298. - (void) setChinLevel:(float)chinLevel TXUGC_DEPRECAETD_BEAUTY_API;
  299. /**
  300. * 设置短脸(增值版本有效,普通版本设置此参数无效)[仅限企业版Pro]
  301. * @deprecated v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能
  302. * @param faceShortlevel 短脸级别取值范围 0 ~ 9; 0 表示关闭 1 ~ 9值越大 效果越明显。
  303. */
  304. - (void) setFaceShortLevel:(float)faceShortlevel TXUGC_DEPRECAETD_BEAUTY_API;
  305. /**
  306. * 设置瘦鼻(增值版本有效,普通版本设置此参数无效)[仅限企业版Pro]
  307. * @deprecated v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能
  308. * @param noseSlimLevel 瘦鼻级别取值范围 0 ~ 9; 0 表示关闭 1 ~ 9值越大 效果越明显。
  309. */
  310. - (void) setNoseSlimLevel:(float)noseSlimLevel TXUGC_DEPRECAETD_BEAUTY_API;
  311. /**
  312. * 设置绿幕文件(增值版本有效,普通版本设置此参数无效)[仅限企业版Pro]
  313. *
  314. * @deprecated v7.2 版本弃用,请使用 TXBeautyManager 设置绿幕背景视频
  315. * @param file 绿幕文件路径
  316. */
  317. -(void) setGreenScreenFile:(NSURL *)file TXUGC_DEPRECAETD_BEAUTY_API;
  318. /**
  319. * 设置动效 (增值版本有效,普通版本设置此参数无效)[仅限企业版及企业版Pro]
  320. * @deprecated v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能
  321. * @param tmplName 动效名称
  322. * @param tmplDir 动效上层文件路径
  323. */
  324. - (void) selectMotionTmpl:(NSString *)tmplName inDir:(NSString *)tmplDir TXUGC_DEPRECAETD_BEAUTY_API;
  325. /**
  326. * 设置动效静音 (增值版本有效,普通版本设置此参数无效)[仅限企业版及企业版Pro]
  327. * @deprecated v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能
  328. * @param motionMute YES 静音, NO 不静音
  329. */
  330. - (void)setMotionMute:(BOOL)motionMute TXUGC_DEPRECAETD_BEAUTY_API;
  331. ////////////////////////////////////////////////////////////////////////////////////////////////
  332. /////////////////////////////////////////背景音相关逻辑////////////////////////////////////////////
  333. ////////////////////////////////////////////////////////////////////////////////////////////////
  334. #pragma mark - 背景音相关逻辑
  335. /** @name 背景音相关逻辑 */
  336. /**
  337. * 设置背景音乐文件 [精简版不支持]
  338. * 注意:录制过程不能切换背景音乐,可能会导致异常,如果需要切换音乐,请先停止视频录制
  339. * @param path 音乐文件路径,一定要是app对应的document目录下面的路径,否则文件会读取失败
  340. * return: 音乐时长 s (返回值为0,表示BGM格式不支持或则音频解析失败)
  341. */
  342. - (CGFloat) setBGM:(NSString *)path;
  343. /**
  344. * 设置背景音乐文件 [精简版不支持]
  345. * 注意:录制过程不能切换背景音乐,可能会导致异常,如果需要切换音乐,请先停止视频录制
  346. * @param asset 音乐属性asset,从系统媒体库loading出来的音乐,可以直接传入对应的音乐属性,会极大的降低音乐从系统媒体库loading的时间,具体请参考demo用法
  347. * return: 音乐时长 s (返回值为0,表示BGM格式不支持或则音频解析失败)
  348. */
  349. - (CGFloat) setBGMAsset:(AVAsset *)asset;
  350. /**
  351. * 设置背景音乐是否循环播放 [精简版不支持]
  352. * @param isLoop 是否循环播放
  353. */
  354. - (void) setBGMLoop:(BOOL)isLoop;
  355. /**
  356. * 播放背景音乐 [精简版不支持]
  357. * 必须在startCamera之后调用
  358. * @param startTime 音乐播放起始时间
  359. * @param endTime 音乐播放结束时间
  360. * @param beginNotify 音乐播放开始的回调
  361. * @param progressNotify 音乐播放的进度回调,单位毫秒
  362. * @param completeNotify 音乐播放结束的回调
  363. * @return 是否成功
  364. */
  365. - (BOOL)playBGMFromTime:(float)startTime
  366. toTime:(float)endTime
  367. withBeginNotify:(void (^)(NSInteger errCode))beginNotify
  368. withProgressNotify:(void (^)(NSInteger progressMS, NSInteger durationMS))progressNotify
  369. andCompleteNotify:(void (^)(NSInteger errCode))completeNotify;
  370. /**
  371. * 停止播放背景音乐 [精简版不支持]
  372. */
  373. - (BOOL)stopBGM;
  374. /**
  375. * 暂停播放背景音乐 [精简版不支持]
  376. */
  377. - (BOOL)pauseBGM;
  378. /**
  379. * 继续播放背景音乐 [精简版不支持]
  380. */
  381. - (BOOL)resumeBGM;
  382. /** 设置麦克风的音量大小,播放背景音乐混音时使用,用来控制麦克风音量大小 [精简版不支持]
  383. * @param volume 音量大小,1为正常音量,建议值为0~2,如果需要调大音量可以设置更大的值
  384. * 注意:这个接口目前在playBGM之后才生效
  385. */
  386. - (BOOL)setMicVolume:(float)volume;
  387. /** 设置背景音乐的音量大小,播放背景音乐混音时使用,用来控制背景音音量大小 [精简版不支持]
  388. * @param volume 音量大小,1为正常音量,建议值为0~2,如果需要调大背景音量可以设置更大的值
  389. * 注意:这个接口目前在playBGM之后才生效
  390. */
  391. - (BOOL)setBGMVolume:(float)volume;
  392. /**
  393. * 设置混响效果 [精简版不支持]
  394. * @param reverbType 混响类型 ,详见 TXReverbType
  395. */
  396. - (BOOL)setReverbType:(TXVideoReverbType)reverbType;
  397. /**
  398. * 设置变声类型 [精简版不支持]
  399. * @param voiceChangerType 变声类型, 详见 TXVoiceChangerType
  400. * 注意:变声目前仅支持 AUDIO_SAMPLERATE_8000 , AUDIO_SAMPLERATE_16000 ,AUDIO_SAMPLERATE_48000 三种采样率
  401. */
  402. - (BOOL)setVoiceChangerType:(TXVideoVoiceChangerType)voiceChangerType;
  403. /**
  404. * 截图/拍照,startCamera 之后调用有效 [精简版不支持]
  405. @param snapshotCompletionBlock 完成回调
  406. @return
  407. 0 | 成功
  408. -2 | videoRecorder初始化失败
  409. -5 | licence 验证失败,您可以通过 getLicenceInfo 接口查询licence信息
  410. */
  411. - (int)snapshot:(void (^)(UIImage *))snapshotCompletionBlock;
  412. @end
  413. /// @}