企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
### **开始录制** ~~~ instance.startRecord(recordOpt) ~~~ **接口说明** 开始录制,录像可以录制单方视频流,也可以录制多方视频流。 **返回值** 录制操作返回的状态码(0代表录制成功 ) **接口参数简介** | 名称 |类型 |说明 |是否必须 | | --- | --- | --- | --- | | recordOpt| object | 录制配置类 | 是| **recordOpt录制配置类简介** | 名称 |类型 |说明 |是否必须 | | --- | --- | --- | --- | | recordLayoutOpt | object | 录制画面布局配置 | 是 | | done | function | 录制结果通知 | 是 | | OnRecordStatus | function | 录像心跳通知 | 否 | | OnRecordStart | function | 录像开始通知 | 否 | | userId | number | 需要录制的用户ID | 否(默认为调用者ID,即-1,若调用者自身无视频流,或者只需要录其他人视频,则需要传该字段) | | width | number | 录制画面高度 (默认640) | 否 | | height | number | 录制画面高度 (默认480) | 否 | | mode | number | 1: 本地录制(默认) 2:服务器端录制 3:服务器合成流录制| 否 | | content | number | 录制内容:<br> 1--既录音又录像(默认),<br> 2--只录音, <br> 3--只录像 | 否 | | fileType | number | 录制文件类型:<br>1--MP4(默认)<br>2--WMV<br>3--FLV<br> 4--MP3 <br> 5--WMA| 否 | | clipMode | number | 视频裁剪模式:<br>0--默认模式,画面以最大比例进行裁剪后再拉伸,被裁剪画面较大;<br>1--重叠模式,只取最大有效部分,对边缘进行裁剪;<br>2--缩小模式,缩小到合适的比例,不进行裁剪;<br> 3--平铺模式,不进行裁剪,但可能导致画面不成比例| 否 | | fileName | string | 录制文件名 | 否 | | localFilePath | string | 本地录制文件存放目录 | 否 | | category | string | 录像文件上传至服务器上的分类子目录 | 否 | | isStrict | number | 严格模式 | 否( <br>严格模式 -- 1(默认)<br> 非严格模式 -- 0) | | isDealException | number | 异常情况处理 | 否( <br>录像服务处理--0(默认)<br> 业务层处理 -- 1) | | strJson | string | 录像自定义参数 | 否 | | statusnotify | number | 获取录像心跳的时间间隔 | 否 | recordLayoutOpt 录制画面布局配置类简介: | 返回值 | 名称 |说明 |备注 | | --- | --- | --- | --- | | recordlayout| int | 视频布局,视频流数量,即多少个视频画面| 是| | layoutstyle| int | 三路流和四路流的视频画面布局风格:0-并列风格(默认) ,1-画中画风格,2-三画面并列风格| 是 | streamlist | array| 录制画面各个区域对应的视频流。视频流对象包含三个属性:<br>1、userid录制对象ID;<br>2、streamindex:录制对象的视频流号;<br>3、recordindex:录制画面编号 | 是 | **回调说明** | 名称 | 参数(类型):说明 | 接口说明 | 备注 | | --- | --- | --- | --- | | OnRecordStartDone | data(返回数据) | 录像开始回调 |data.userid: 用户id<br>data.statuscode: 录像状态码,1为prepare,2为start;<br> data.status: 录像状态,值为prepare,start<br> | | OnRecordStatusDone | result(执行结果)<br> data(返回数据) | 录像心跳回调 |result.code: 0表示成功<br>result.msg: 结果描述;<br> data.guid: 发起录制的guid<br> | | OnRecordAbnormalDone | result(执行结果)<br> data(返回数据) | 录像异常回调 |result.code: 0表示成功<br>result.msg: 结果描述;<br> data.guid: 发起录制的guid<br> | | onRecordDone | result(执行结果)<br> data(返回数据) | 录像结束回调 |result.code: 0表示成功,其他表示错误代号<br>result.msg: 结果描述;<br> data.userid: 发起录制的用户ID<br>data.filePath: 录制文件的保存地址<br>data.elapse: 录像时长,时间为秒;<br>data.filelength: 录像文件大小<br>data.filemd5: 录像文件md5值(用于校验录像文件完整性等)<br> | **示例代码** ~~~ var recordLayoutOpt = {}; recordLayoutOpt.recordlayout = 2; recordLayoutOpt.layoutstyle= 0; //录制画面各个区域对应的视频流 layoutStreams 的用法 recordLayoutOpt.streamlist= [ { userid: -1, //自己ID streamindex: 0, //用户的视频流编号,用户可能存在多个摄像头 recordindex: 1 //录制画面编号, 由数字从小到大向右排序, //若是录制画面是大小屏的,0是大屏,1是小屏 }, { userid: VideoCallUserId, //呼叫用户ID streamindex: 0, //用户的视频流编号,用户可能存在多个摄像头 recordindex: 0 //录制画面编号, 由数字从小到大向右排序, //若是录制画面是大小屏的,0是大屏,1是小屏 }, ... ]; var recordOpt = { userId: -1, //录制的用户ID,-1为自己 width: 640, //录制画面宽度 height: 480, //录制画面高度 mode: 1, //录制模式 content: 1, //录制内容 fileType: 1, //录制文件类型 clipMode: 2, //视频裁剪模式 fileName: '2018-08-06_15-25-06', //录制文件名 localFilePath: 'd:\\anychat\\video', //本地录制文件存放目录 category: 'video', //录像文件上传至服务器上的分类子目录 strJson: xxx, //录像自定义参数 statusnotify: 15, //获取录像心跳的时间间隔 recordLayoutOpt:recordLayoutOpt,//录制画面布局配置 }; //调用录制 instance.startRecord(recordOpt); ~~~