💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
### **发起多路录制** ~~~ instance.addSubRecord(recordOpt) ~~~ **接口说明** 发起多路录制,录像可以录制单方视频流,也可以录制多方视频流。可发起多笔多路录制 **返回值** 发起多路录制操作返回的taskid(有taskid返回标识录制成功 ),taskid用于结束制定多路录制 **接口参数简介** | 名称 |类型 |说明 |是否必须 | | --- | --- | --- | --- | | recordOpt| object | 录制配置类 | 是| **recordOpt录制配置类简介** | 名称 |类型 |说明 |是否必须 | | --- | --- | --- | --- | | recordLayoutOpt | object | 录制画面布局配置 | 是 | | done | function | 录制结果通知 | 是 | | OnRecordStatus | function | 录像心跳通知 | 否 | | OnRecordStart | function | 录像开始通知 | 否 | | userId | number | 需要录制的用户ID | 否(默认为调用者ID,即-1,若调用者自身无视频流,或者只需要录其他人视频,则需要传该字段) | | mode | number | 1: 本地录制(默认) 2:服务器端录制 3:服务器合成流录制| 否 | | content | number | 录制内容:<br> 1--既录音又录像(默认),<br> 2--只录音, <br> 3--只录像 | 否 | | fileName | string | 录制文件名 | 否 | | category | string | 录像文件上传至服务器上的分类子目录 | 否 | | statusnotify | number | 获取录像心跳的时间间隔 | 否 | recordLayoutOpt 录制画面布局配置类简介: | 返回值 | 名称 |说明 |备注 | | --- | --- | --- | --- | | recordlayout| int | 视频布局,视频流数量,即多少个视频画面| 是| | layoutstyle| int | 三路流和四路流的视频画面布局风格:0-并列风格(默认) ,1-画中画风格,2-三画面并列风格| 是 | streamlist | array| 录制画面各个区域对应的视频流。视频流对象包含三个属性:<br>1、userid录制对象ID;<br>2、streamindex:录制对象的视频流号;<br>3、recordindex:录制画面编号 | 是 | **回调说明** | 名称 | 参数(类型):说明 | 接口说明 | 备注 | | --- | --- | --- | --- | | OnRecordStart | data(返回数据) | 录像开始回调 |data.userid: 用户id<br>data.statuscode: 录像状态码,1为prepare,2为start;<br> data.status: 录像状态,值为prepare,start<br> | | OnRecordStatus | result(执行结果)<br> data(返回数据) | 录像心跳回调 |result.code: 0表示成功<br>result.msg: 结果描述;<br> data.guid: 发起录制的guid<br> | | done | 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为自己 mode: 1, //录制模式 content: 1, //录制内容 fileType: 1, //录制文件类型 fileName: '2018-08-06_15-25-06', //录制文件名 category: 'video', //录像文件上传至服务器上的分类子目录 statusnotify: 15, //获取录像心跳的时间间隔 recordLayoutOpt:recordLayoutOpt,//录制画面布局配置 }; //调用录制 instance.addSubRecord(recordOpt); ~~~ ### **停止多路录制** ~~~ instance.stopSubRecord(recordOpt) ~~~ **接口说明** 结束多路录制 **返回值** 无 **接口参数简介** | 名称 |类型 |说明 |是否必须 | | --- | --- | --- | --- | | recordOpt| object | 结束配置类 | 是| **recordOpt录制配置类简介** | 名称 |类型 |说明 |是否必须 | | --- | --- | --- | --- | | userId | number | 需要录制的用户ID | 否(默认为调用者ID,即-1,若调用者自身无视频流,或者只需要录其他人视频,则需要传该字段) | | taskguid | string | 发起录制返回的taskid | 是 | **示例代码** ~~~ var recordOpt = { userId: -1, //录制的用户ID,-1为自己 taskguid: xxxx-xxxxx-xxxxx-xxxxxxxx-xxx-xxxx, //t发起录制时返回的taskid }; //调用录制 instance.stopSubRecord(recordOpt); ~~~