### **开始录制**
- (void)startRecord:(AnyChatRecordOpt *)opt;
接口说明:
开始录制,录像可以录制单方视频流,也可以录制多方视频流。
初始化录制配置参数 (开始录制时有些参数是必传)
AnyChatRecordOpt *recordOpt = [[AnyChatRecordOpt alloc]init];
self.recordOpt = recordOpt;
接口参数简介:
| 名称 |类型 |说明 |是否必须 |
| --- | --- | --- | --- |
| recordOpt| AnyChatRecordOpt | 录制配置类 | 是|
AnyChatRecordOpt录制配置类简介:
| 名称 |类型 |说明 |是否必须 |
| --- | --- | --- | --- |
| userID | NSString | 用户id | 是 |
| recordLayoutOpt | AnyChatRecordLayoutOpt | 录制画面布局配置类 | 是 |
| width | CGFloat | 录制画面宽度(默认640) | 否 |BRAC_RECORD_STREAM_MODE
| height | CGFloat | 录制画面高度 (默认480) | 否 |
| videobitrate | int | 视频码率 | 否 |
| audiobitrate | int | 音频码率 | 否 |
| fps | int | 录像帧率 | 否 |
| channels | int | 音频通道 1 单通道 或者 2 双通道 | 否 |
| samplepersec | int | 音频采样率 48000 、 16000 等 | 否 |
| mode | BRAC_RecordMode | 录制模式<br>BRAC_RECORD_LOCAL_MODE --本地录制(默认)<br>BRAC_RECORD_SERVER_MODE --服务器端录制<br> BRAC_RECORD_STREAM_MODE --服务器端合成流录制 BRAC_RECORD_LOCAL_STREAM_MODE --本地合成流录制|否 |
| content | BRAC_RecordContent | 录制内容<br>BRAC_RECORD_DEFAULT_CONTENT--既录音又录像(默认)<br>BRAC_RECORD_AUDIO--只录音<br>BRAC_RECORD_VIDEO--只录像 | 否 |
| fileType | BRAC_RecordFileType | 录制文件类型<br> BRAC_RECORD_FILE_TYPE_MP4-- MP4(默认) <br>BRAC_RECORD_FILE_TYPE_WMV--WMV<br>BRAC_RECORD_FILE_TYPE_FLV-- FLV<br>BRAC_RECORD_FILE_TYPE_MP3-- MP3| 否|
| fileName | NSString | 录制文件名 | 否 |
| category | NSString | 录像文件保存目录(使用服务器录制或服务器合成流录制有效) | 否 |
| encryptionKey | NSString | 加密录像视频文件的加密秘钥,值为空表示不加密 | 否 |
| localFilePath | NSString | 本地录制文件存放目录 | 否 |
| recordClipMode| BRAC_RecordClipMode | 裁剪模式:<br>BRAC_RECORD_CLIPMODE_UNKNOW--未知模式,不需要做裁剪时使用<br>BRAC_RECORD_CLIPMODE_AUTO--默认模式(最大比例)<br>BRAC_RECORD_CLIPMODE_OVERLAP--重叠模式<br>BRAC_RECORD_CLIPMODE_SHRINK--缩小模式<br>BRAC_RECORD_CLIPMODE_STRETCH--平铺模式 | 否 |
| picOpt | AnyChatPicMarkOpt | 在录像文件中添加图片水印 | 否 |
| textOpt | AnyChatTextMarkOpt | 在录像文件中添加文字水印| 否 |
| strJson | string | 录像自定义参数 | 否 |
| statusnotify | number | 录像状态回调通知时间设置,默认时间为10秒(针对服务器录制和服务器合成流录制有效) | 否 |
AnyChatRecordLayoutOpt 录制画面布局配置类简介:
| 名称 |类型 |说明 |是否必须 |
| --- | --- | --- | --- |
| recordlayout| int | 视频布局,视频流数量,即多少个视频画面| 是|
| layoutstyle| int | 两路流、三路流和四路流的视频画面布局风格:0-并列风格(默认) ,1-画中画风格,2-三画面并列风格| 否|
| streamlist | NSArray | 录制对象AnyChatRecordStreamOpt的NSArray集合。<br>AnyChatRecordStreamOpt对象包含三个属性:<br>1、userID(String)录制对象ID<br>2、streamIndex(int):录制对象的视频流号,移动端默认为0;<br>3、recordIndex(int):录制对象在录制视频上的位置 | 否 |
**回调说明**
| 名称 | 参数(类型):说明 | 接口说明 | 备注 |
| --- | --- | --- | --- |
| RecordStartCallback | result(执行结果)<br> data(返回数据) | 录像开始回调 |result.code: 0表示成功,其他表示错误代号<br>result.msg: 结果描述;<br> data.userid: 发起录制的用户ID<br>data.status: 录像状态,值为"prepare" "start";<br>data.statuscode: 录像状态,1为prepare 2为start;<br> |
| RecordStatusnotifyBlock | data(返回数据) | 录像心跳回调 (对服务器录制以及服务器合成流录制有效) |data.userid: 发起录制的用户ID<br>data.errorcode: 错误码 |
**示例代码**
~~~
// 开始录制
-(void)startRecordUserId:(int)userId recordlayout:(int)recordlayout recordMode:(BRAC_RecordMode)mode {
//录制配置参数
AnyChatRecordOpt *recordOpt = [[AnyChatRecordOpt alloc]init];
self.recordOpt = recordOpt;
self.recordOpt.recordClipMode = BRAC_RECORD_CLIPMODE_SHRINK;
self.recordOpt.content = BRAC_RECORD_DEFAULT_CONTENT; //录制内容(既录音又录像)
NSMutableArray *layoutArr = [NSMutableArray array];
switch (mode) {
case BRAC_RECORD_LOCAL_MODE: //本地录制(录制自己或者录制对方)
{
AnyChatRecordStreamOpt *streamOpt = [AnyChatRecordStreamOpt new];
streamOpt.userId = userId;
//视频流编号和录制画面编号(视频流默认为0)
streamOpt.streamindex = 0;
streamOpt.recordindex = 0;
[layoutArr addObject:streamOpt];
break;
}
case BRAC_RECORD_LOCAL_STREAM_MODE://本地合成录制
{
//对方录制流参数
AnyChatRecordStreamOpt *iRemoteRecordStreamOpt = [[AnyChatRecordStreamOpt alloc]init];
iRemoteRecordStreamOpt.userId = userId;
iRemoteRecordStreamOpt.streamindex = 0; //视频流编号(客户端同时只能开启一个摄像头 所以默认为0)
iRemoteRecordStreamOpt.recordindex = 0; //录制画面编号(一个画面对应一个编号)
//自己录制流参数
AnyChatRecordStreamOpt *iSelfRecordStreamOpt = [[AnyChatRecordStreamOpt alloc]init];
int myUserId = [AnyChatSDK getInstance].theMyUserID;
iSelfRecordStreamOpt.userId = myUserId;
iSelfRecordStreamOpt.streamindex = 0; //视频流编号(客户端同时只能开启一个摄像头 所以默认为0)
iSelfRecordStreamOpt.recordindex = 1; //录制画面编号(一个画面对应一个编号)
[layoutArr addObject:iRemoteRecordStreamOpt];
[layoutArr addObject:iSelfRecordStreamOpt];
break;
}
default:
break;
}
self.recordOpt.recordLayoutOpt = [[AnyChatRecordLayoutOpt alloc] init];
self.recordOpt.recordLayoutOpt.streamlist = layoutArr;
self.recordOpt.recordLayoutOpt.recordlayout = recordlayout; //视频布局,视频流数量,即多少个视频画面
//录制模式
self.recordOpt.mode = mode;
self.recordOpt.userId = userId;
//开始录制
[[AnyChatSDK getInstance] startRecord:self.recordOpt];
~~~
- SDK介绍
- 工程准备
- 获取SDK
- 导入SDK
- 开发流程
- 初始化SDK
- 初始化及自动登录
- 退出及释放连接
- 登录方式说明
- 版本信息查询
- 房间管理
- 初始化
- 进入房间
- 获取房间中的用户列表
- 房间内的文字交流
- 退出房间
- 音视频操作
- 设备初始化
- 注册设备初始化事件
- 音视频互动
- 本地麦克风管理
- 打开本地麦克风
- 关闭本地麦克风
- 本地摄像头管理
- 打开本地摄像头
- 关闭本地摄像头
- 切换本地摄像头
- 接收/终止对方音频流
- 接收远程音频流
- 关闭远程音频流
- 接收/终止对方视频流
- 获取远程视频流
- 关闭远程视频流
- 视频呼叫
- 初始化
- 呼叫用户
- 取消呼叫
- 接受呼叫
- 拒绝接听
- 挂断通话
- 录制(录音录像)
- 开始录制
- 结束录制
- 录像中插入图片
- 录制中插入图片水印
- 录像中插入文字水印
- 更新录制参数
- 非严格模式录制
- 异常任务录像终止
- 混音录制
- 视频拍照
- 抓拍
- 音视频参数设置
- 视频参数设置
- 音频参数设置
- 噪音检测
- 设置音频工具箱
- 获取噪音大小
- 麦克风灵敏度获取与设置
- 文件传输
- 初始化文件模块
- 文件传输
- 文件管理
- 初始化文件模块
- 文件下载
- 文件上传
- 透明通道
- 发送透明通道
- 智能排队
- 初始化排队模块
- 营业厅操作
- 获取营业厅列表
- 进入营业厅
- 离开营业厅
- 排队操作
- 进入排队
- 取消排队
- 席座服务状态设置
- 状态查询
- 查询席座状态
- 查询队伍排队人数
- 查询当前排队时间
- 查询队列排队用户的详细信息
- 桌面共享与屏幕录制
- 桌面共享
- 显示用户共享桌面
- 手写签名
- 双录
- 基本流程
- 自助双录
- 远程双录
- 双录接口说明
- PPT资源下载
- 下载任务初始化
- 开始下载
- 取消下载
- 下载进度回调
- 下载完成回调
- 查询资源下载状态
- 查询资源详情信息
- 资源播放
- PPT资源播放
- 播放
- 暂停
- 停止
- 获取当前播放信息
- 资源切换到下一帧
- 资源切换到上一帧
- 跳转到某个时间点播放
- 播放状态回调接口
- 播放翻页回调接口
- 媒体资源播放
- 播放
- 暂停
- 停止
- 获取当前播放信息
- 播放状态回调接口
- 时间戳
- 水印
- 用户相关的查询接口
- 查询用户名
- 网络状态检测
- 设置实时网络监测模块
- 查询指定用户网络详情
- 房间内网络状态监听
- 音视频通话网络质量查询
- 远程视频流加载事件
- AI功能模块
- AI降噪
- 错误码