类型定义
初始化配置
InitObj
- Type:object
 
| 成员变量 | 类型 | 说明 | 
|---|---|---|
| sdkDatSavePath | string | SDK内部使用文件位置 | 
| noCall | boolean | 是否使用呼叫业务(可减少登录环节、及通信需求),缺省:true | 
| noQueue | boolean | 是否使用sdk的排队功能的业务(可减少登录环节、及通信需求),缺省:true | 
| timeOut | int | 网络通信超时时间(10000-120000),单位是毫秒,超出范围时就近取边界值,缺省:60s | 
| datEncType | string | 数据加密类型("0":敏感数据加密,"1":全面加密; 缺省:"1") | 
登录配置
LoginObj
- Type:object
 
| 成员变量 | 类型 | 说明 | 
|---|---|---|
| appId | string | appID用于区分不同的项目,每个项目都有属于自己的唯一的appID,不同appID的项目完全独立,无法相互通信。 appID请联系销售获取,并开通相关套餐和功能权限。使用appId鉴权不传token  | 
| appSecret | string | appID对应的密码(md5加密传给sdk),可登录SDK管理后台修改 | 
| token | string | Token鉴权码,使用token登录鉴权appId和appSecret不传 | 
| userId | string | 用户ID,长度不能大于128。和SDK系统无关,业务方自由填写,保证唯一性即可(同一appID下,具有唯一性即可) | 
| userAuthCode | string | 只有开启第三方认证才需要填写。(开启第三方认证时,SDK服务器将连接提前配好的业务方服务器进行实时验证。) | 
用户状态
UserStatus
| 成员变量 | 类型 | 说明 | 
|---|---|---|
| userID | String | 用户id | 
| userStatus | number | 用户的在线状态,数值参考CLIENT_STATUS | 
| DNDType | boolean | 用户免打扰状态,参见setDNDStatus | 
队列信息
QueueInfo
| 成员变量 | 类型 | 说明 | 
|---|---|---|
| queID | string | 队列ID | 
| name | string | 队列名称 | 
| desc | string | 队列描述 | 
| prio | number | 优先级,值越小优先级越高 | 
队列状态
QueueStatus
| 成员变量 | 类型 | 说明 | 
|---|---|---|
| queID | string | 队列ID | 
| agent_num | number | 坐席数量 | 
| wait_num | number | 排队客户数量 | 
| srv_num | number | 正在服务的客户数量 | 
排队信息
QueuingInfo
| 成员变量 | 类型 | 说明 | 
|---|---|---|
| queID | string | 我排的队列 (-1:代表我没有排队;-2:代表我正在会话中,通过getSessionInfo可获取相关信息) | 
| position | number | 当前位置(0为队列中的第1位,即将被服务) | 
| queuingTime | number | 我排队的时长(单位s) | 
会话信息
VideoSessionInfo
| 成员变量 | 类型 | 说明 | 
|---|---|---|
| callID | string | 会话中的呼叫ID | 
| peerID | string | 会话中的目标用户ID | 
| peerName | string | 会话中的目标用户昵称 | 
| bCallAccepted | boolean | 呼叫是否被对方接受 | 
| meetingID | number | 会话中分配的房间ID | 
| duration | number | 会话持续的时长(秒) | 
队列用户
UserInfo
| 成员变量 | 类型 | 说明 | 
|---|---|---|
| queID | string | 队列ID | 
| usrID | string | 用户ID | 
| name | string | 用户昵称 | 
| queuingTime | number | 用户排队的时长(单位s) | 
| usrExtDat | string | 用户排队时传入的扩展参数 | 
设备入会配置
CRDevJoinCfg
{
    devInfo: {
        autoOpenMic: 0,
        userID: "123456",
        nickname: "xxx",
        videoSize: "1280*720",
        quality2Size: "228*160"
    }
}
| 参数 | 类型 | 说明 | 
|---|---|---|
| devInfo | string | 设备配置,json格式,详见下方devInfo参数说明 | 
devInfo参数说明
| 参数 | 类型 | 说明 | 
|---|---|---|
| autoOpenMic | number | 入会麦克风状态:-1:本地配置,0:入会关闭麦克风,1:入会打开麦克风(默认值) | 
| userID | string | 自定义设备在房间中的UserID(可为空,默认为calledUserID或inviteeUsrID) | 
| nickname | string | 自定义设备在房间中的昵称(可为空,默认为calledUserID或inviteeUsrID) | 
| videoSize | string | 自定义设备视频清晰度(可选参数,未配置时采用视频透传) | 
| quality2Size | string | 自定义设备视频小流清晰度(可选参数,未配置时无小流) | 
操作房间属性选项
CRAttrOptions
| 参数 | 类型 | 说明 | 
|---|---|---|
| notifyAll | number | 0(默认值):不通知,1:通知房间所有人员 | 
房间属性集
CRAttrObjs
{
    "KeyXX": {
        "value": "11111",
        "lastModifyUserID": "111",
        "lastModifyTs": 11111
    },
    "KeyYY": {
        "value": "22222",
        "lastModifyUserID": "222",
        "lastModifyTs": 22222
    }
}
| 参数 | 类型 | 说明 | 
|---|---|---|
| User defined Key | string | 自定义的属性Key | 
| value | string | 属性值 | 
| lastModifyUserID | string | 最后修改的用户ID | 
| lastModifyTs | number | 最后修改的时间点,1970-1-1 00:00:00以来的秒数 | 
用户属性集
CRUsrAttrObjs
 {
    "userid1": {
        "KeyXX": {
            "value": "11111",
            "lastModifyUserID": "111",
            "lastModifyTs": 11111
        },
        "KeyYY": {
            "value": "22222",
            "lastModifyUserID": "222",
            "lastModifyTs": 22222
        }
    },
    "userid2": {
        "KeyXX": {
            "value": "11111",
            "lastModifyUserID": "111",
            "lastModifyTs": 11111
        },
        "KeyYY": {
            "value": "22222",
            "lastModifyUserID": "222",
            "lastModifyTs": 22222
        }
    }
}
| 参数 | 类型 | 说明 | 
|---|---|---|
| UserID | string | 用户ID | 
| User defined Key | string | 自定义的属性Key | 
| value | string | 属性值 | 
| lastModifyUserID | string | 最后修改的用户ID | 
| lastModifyTs | number | 最后修改的时间点,1970-1-1 00:00:00以来的秒数 | 
房间对象数据类
MeetInfo
| 成员变量 | 类型 | 说明 | 
|---|---|---|
| ID | number | 房间号,数值0代表房间信息无效 | 
成员信息
MemberInfo
- Type: object
 
| 名称 | 类型 | 说明 | 
|---|---|---|
| userId | string | 用户ID | 
| nickName | string | 昵称 | 
| audioStatus | number | 音频状态,数值参考ASTATUS | 
| videoStatus | number | 视频状态,数值参考VSTATUS | 
音频配置
AudioCfg
- Type: object
 
| 名称 | 类型 | 说明 | 
|---|---|---|
| micName | String | 麦克风设备名称(空代表系统默认设备) | 
| speakerName | String | 扬声器名称(空代表系统默认设备) | 
| agc | boolean | 是否开启声音增益,默认开启 | 
| ans | boolean | 是否开启降噪,默认开启 | 
| aec | boolean | 是否开启回声消除,默认开启 | 
视频配置
VideoCfg
| 成员变量 | 类型 | 说明 | 
|---|---|---|
| size | object | 视频尺寸,格式: { width: 1920, height: 1080 } | 
| fps | number | 视频帧率(5~30) | 
| maxbps | number | 视频码率(1~10010001000)(未配置则使用内部默认值) | 
| minQuality | number | 最佳质量(18~51,越小质量越好) (未配置则使用内部默认值25) | 
| maxQuality | number | 最差质量(18~51, 越大质量越差) (未配置则使用内部默认值36) | 
- 
注意事项
- 我们采用的是vbr编码(由质量+码率,双重控制)
 - qp范围:质量参数,为的是达到目标质量后,无需花费更大码率提高质量
 - maxbps码率控制,是为了确保结果一定不大于“目标码率”(体积受控), 当要超出码率控制时,自动降低质量;当质量达到目标时,自动减少码率甚至无码率输出 注:使用硬编时第二点是无效的。
 
 
视频效果配置
VideoEffects
| 成员变量 | 类型 | 说明 | 
|---|---|---|
| denoise | boolean | 视频降噪 | 
| upsideDown | boolean | 视频上下翻转 | 
| mirror | number | 视频左右镜像(-1:自动,0:关,1:开) | 
| degree | number | 视频旋转(-1:自动,0-270:旋转角度) | 
前后置摄像头配置
DevicePosition
- Type: object
 
| 名称 | 类型 | 说明 | 
|---|---|---|
| front | number | 前置摄像头ID | 
| back | number | 后置摄像头ID | 
视频设备私有属性
VideoAttributes
| 名称 | 类型 | 说明 | 
|---|---|---|
| disabled | boolean | 是否禁用 | 
| effects | VideoEffects | 视频效果配置 | 
| quality1Cfg | VideoCfg | 第一档视频配置,未配置时采用全局配置 | 
| quality2Cfg | VideoCfg | 第二档视频配置,未配置代表关闭对应档位视频流 | 
用户摄像头
UsrVideoId
- Type: object
 
| 名称 | 类型 | 说明 | 
|---|---|---|
| userId | string | 用户id | 
| videoID | number | 设备id | 
用户视频信息列表
VideoInfosObj
[
    {
        "isScreenCamera": false,
        "userId": "Uniapp_2212",
        "isDisabled": false,
        "videoID": 1,
        "videoName": "CAMERA_FACING_FRONT",
        "isCustomCamera": false,
        "isIPCamera": false,
        "devID": "1_1"
    },
    {
        "isScreenCamera": false,
        "userId": "Uniapp_2212",
        "isDisabled": false,
        "videoID": 2,
        "videoName": "CAMERA_FACING_BACK",
        "isCustomCamera": false,
        "isIPCamera": false,
        "devID": "1_0"
    }
]
- Type: object
 
| 名称 | 类型 | 说明 | 
|---|---|---|
| userId | number | 所属用户ID | 
| videoID | number | 摄像头ID | 
| videoName | number | 设备名称 | 
| isIPCamera | number | 是否IP摄像头 | 
影音文件信息
MediaInfoObj
- Type: object
 
| 参数 | 类型 | 说明 | 
|---|---|---|
| userID | string | 共享端用户id | 
| state | number | 播放状态 0:播放 1:暂停 2:未播放 | 
| mediaName | string | 影音文件名 | 
屏幕共享配置对象
ScreenShareCfg
- Type: object
 
| 参数 | 类型 | 说明 | 
|---|---|---|
| maxFps | number | 帧率, 缺省为8 (当网络发不动时,帧率会自动下降) | 
| maxBps | number | 最大码率,缺省为800000(800kbps) | 
屏幕共享启动配置对象
ScreenMessageCfg
- Type: object
 
| 参数 | 类型 | 说明 | 
|---|---|---|
| title | string | 系统通知的标题 | 
| contentText | string | 系统通知的内容 | 
混图器规格配置
MixerCfg
- Type: object
 
| 成员变量 | 类型 | 说明 | 
|---|---|---|
| dstResolution | object | 图像大小,例如:{ width: 1280, height: 720 } | 
| frameRate | number | 图像帧率,取值范围:1-30(值越大,cpu要求更高,录像推荐15帧,直播推存25帧) | 
| bitRate | number | 录制视频文件的最高码率,当图像变化小时,实际码率会低于此值 | 
| defaultQP | number | 录制视频文件的缺省质量,缺省值:26 | 
| gop | number | I帧周期(I帧越少码率越小,但直播延时会越大); 文件录制建议15秒一个I帧取值:fpsx15; 直播建议4秒一个I帧取值: fpsx4; | 
混图器内容配置
MixerCotent
- Type: object
 
| 成员变量 | 类型 | 必填 | 说明 | 
|---|---|---|---|
| type | number | 是 | 请见后面type描述 | 
| top | number | 是 | 在混图画面中的区域(垂直位置) | 
| left | number | 是 | 在混图画面中的区域(水平位置) | 
| width | number | 是 | 在混图画面中的区域宽 | 
| height | number | 是 | 在混图画面中的区域高 | 
| userId | number | 否 | type=0时必填。用户id | 
| camId | number | 否 | type=0时选填。 表示摄像头ID,默认值为"-1",表示录制默认摄像头 | 
| keepAspectRatio | number | 否 | type=0时选填。内容保持原始比例,0不保持,1保持(默认值) | 
| resId | string | 否 | type=1时有效。resId通过setPicResource设置 | 
| text | string | 否 | type=10时必填。文字,支持时间戳参数"%timestamp%" | 
| color | string | 否 | type=10时选填。文字颜色,格式:#[AA]RRGGBB, 默认#FFFFFF | 
| background | string | 否 | type=10时选填。背景色,格式:#[AA]RRGGBB, 默认#0000007D | 
| font-size | number | 否 | type=10时选填。字体大小,默认18 | 
| text-margin | number | 否 | type=10时选填。边距,默认5 | 
type描述:
当type=0时,表示混图的是摄像头,可配置userId、camId;
当type=1时,表示混图的是图片,可配置resId(仅用于本地混图);
当type=3时,表示混图的是影音共享;
当type=5时,表示混图的是共享的屏幕;
当type=6时,表示混图的是白板;
当type=10时,表示混图的是文本,可配置text、color、background、font-size、text-margin。
混图器输出配置
MixerOutPutCfg
- Type: object
 
| 成员变量 | 类型 | 说明 | 
|---|---|---|
| type | number | 0:录像文件 1:直播流 | 
| filename | string | 录像路径文件名(本地录像名格式如:/sdcard/1.mp4,服务器录像名格式如:/2018-11-21/1.mp4),支持的文件格式为mp4/ts/flv/avi,其中flv和ts两种格式在程序异常结束时产生的录制文件仍可用。 | 
| encryptType | number | 录像文件是否加密,0:不加密,1:加密; | 
| isUploadOnRecording | boolean | 录像文件是否边录边传,false:不上传,true:边录边传; (此参数仅本地录像有效) | 
| serverPathFileName | string | 边录边传时,上传到服务器的路径文件名; (此参数仅本地录像有效) | 
| liveUrl | string | 直播推流地址,支持rtmp/rtsp | 
| errRetryTimes | number | 直播推流异常时,重试次数 | 
录制文件
RecordFileShow
| 成员变量 | 类型 | 说明 | 
|---|---|---|
| fileName | string | 文件名,全路径 | 
| fileSize | number | 文件大小 | 
| state | number | 文件状态, 0:未上传 1:上传中 2:已上传 3:上传失败 | 
| uploadPercent | number | 录制结果中视频尺寸高度上传进度 | 
录制文件、直播信息通知
MixerOutputInfo
| 成员变量 | 类型 | 说明 | 
|---|---|---|
| state | number | 参见本地混图器输出状态 state为1时:duration, fileSize参数有效; state为2时:duration, fileSize参数有效; state为3时:errCode参数有效;  | 
| duration | number | 录像文件时长,单位:毫秒; | 
| fileSize | number | 录像文件大小; | 
| errCode | number | 错误码 | 
云端混图器配置
CloudMixerCfgObj
- Type:object
 
//为房间中所有人录制独立的声音文件,独立的默认摄像头视频文件
{
    "mode": 1,
    "audioFileCfg": {
        "svrFileNameSuffix": ".mp3",
        "svrPath": "/xxx",
        "subscribeAudios": ["_cr_all_"]
    },
    "videoFileCfg": {
        "aStreamType": 1,
        "svrFileNameSuffix": ".mp4",
        "svrPath": "/xxx",
        "subscribeVideos": ["_cr_allDefCam_"]
    }
}
//录制一个2分屏左右布局图像+房间声音的mp4文件
{
    "mode": 0,
    "videoFileCfg": {
        "svrPathName": "/2021-09-24/2021-09-24_13-47-41_Win32_73542046.mp4",
        "vWidth": 1280,
        "vHeight": 720,
        "vFps": 15,
        "layoutConfig": [
            {
                "type": 0,
                "top": 180,
                "left": 0,
                "width": 640,
                "height": 360,
                "keepAspectRatio": 1,
                "param": {"camid": "1.-1"}
            },
            {
                "type": 0,
                "top": 180,
                "left": 640,
                "width": 640,
                "height": 360,
                "keepAspectRatio": 1,
                "param": {"camid": "2.-1"}
            }
        ]
    }
}
| 参数 | 类型 | 说明 | 是否必传 | 
|---|---|---|---|
| mode | number | 录制模式,取值范围: 0-合流模式:将声音录制到一个声音文件、或将声音图像录制成一个视频文件; 1-单流模式:将涉及到的声音流、图像流存到各自独立的文件中;  | 
是 | 
| audioFileCfg | CloudMixerAudioFileCfg | 生成音频文件配置,生成规则:进入房间并开启麦克风开始生成文件,离开房间结束生成文件 | 否 | 
| videoFileCfg | CloudMixerVideoFileCfg | 生成视频文件配置,生成规则:进入房间并开启摄像头开始生成文件,离开房间结束生成文件 | 否 | 
| storageConfig | CloudStorageConfig | 云存储配置,不配置时将存储在SDK服务器上 | 否 | 
云端录制语音文件配置
CloudMixerAudioFileCfg
- Type:object
 
单流模式参数:
| 参数 | 类型 | 说明 | 是否必传 | 
|---|---|---|---|
| svrPath | string | 服务器存储路径,默认为空 | 否 | 
| svrFileNameSuffix | string | 文件名后缀,支持:“.mp3”、“.wav” 文件命名规则:昵称_房间号_开始时间.后缀  | 
是 | 
| subscribeAudios | array | 指定生成哪些人的音频文件; 取值:["_cr_all_"]或["userId1","userId2"]; _cr_all_代表生成所有人;  | 
是 | 
合流模式参数:
| 参数 | 类型 | 说明 | 是否必传 | 
|---|---|---|---|
| svrPathName | string | 带服务器存储路径的文件名,文件格式支持“mp3”、“wav”,示例:/xxx/xxx/xxx.mp3 | 是 | 
| aChannelType | number | 音频通道类型,取值范围:0-单声道,1-左右双声道,默认为0 | 否 | 
| aChannelContent | array | 音频通道内容。 左右声道模式时:必须传入两个用户ID,如:["UserID1", "UserID2"],第一个人的为左声道,第二个人为右声道) 单声道模式时:必须为空  | 
否 | 
云端录制视频文件配置
- Type:object
 
CloudMixerVideoFileCfg
单流模式参数:
| 参数 | 类型 | 说明 | 是否必传 | 
|---|---|---|---|
| svrPath | string | 服务器存储路径,默认为空 | 否 | 
| svrFileNameSuffix | string | 文件名后缀,当前只支持:”.mp4” 文件命名规则:昵称_cam摄像头编号_房间号_开始时间.后缀  | 
是 | 
| subscribeVideos | array | 指定生成哪些人的摄像头对应的视频文件; 取值:["_cr_all_"]或["_cr_allDefCam_"]或["userId1.camId", "userId2.camId", ...]; _cr_all_代表所有人所有摄像头,_cr_allDefCam_代表生成所有人的默认摄像头  | 
是 | 
| aStreamType | number | 视频文件内音频内容,取值:0-自己声音,1-所有人声音,默认0 | 否 | 
合流模式参数:
| 参数 | 类型 | 说明 | 是否必传 | 
|---|---|---|---|
| svrPathName | string | 带路径的文件名,文件格式支持:mp4、flv、ts、avi、rtmp://、rtsp://,可选一个或多个,以“;”分隔; 示例:”/xxx/xxx.mp4;rtmp://xxx1;rtmp://xxx2;”  | 
是 | 
| aChannelType | number | 音频通道类型,取值:0-单声道,1-左右双声道,默认为0 | 否 | 
| aChannelContent | array | 音频通道内容。 左右声道模式时:必须传入两个用户ID,如:["UserID1", "UserID2"],第一个人的为左声道,第二个人为右声道) 单声道模式时:必须为空  | 
否 | 
| vWidth | number | 视频宽度 | 是 | 
| vHeight | number | 视频高度 | 是 | 
| vFps | number | 视频帧率,取值0-30, 默认值12 | 否 | 
| vBps | number | 视频码率,默认会根据视频尺寸生成码率 | 否 | 
| vQP | number | 视频质量,取值0~51(0表示完全无损, 51表示质量非常差),推荐高质量取值18,中质量25,低质量34, 默认值19 | 否 | 
| layoutConfig | array | 布局内容列表,[MixerContentObj,MixerContentObj,...] | 是 | 
云端录制存储配置
CloudStorageConfig
- Type:object
 
| 参数 | 类型 | 说明 | 是否必传 | 
|---|---|---|---|
| vendor | number | 第三方云存储平台: 1-阿里云 | 是 | 
| region | string | 第三方云存储指定的地区信息 | 是 | 
| bucket | string | 第三方云存储的 bucket | 是 | 
| accessKey | string | 第三方云存储的 access key | 是 | 
| secretKey | string | 第三方云存储的 secret key | 是 | 
混图器内容配置
MixerContentObj
- Type:object
 
{
  "type": 0, 
  "keepAspectRatio": 1,
  "left": 5,
  "top": 10, 
  "width": 633,
  "height": 356,
  "param": {
    "camid": "usr1.1"
  }
}
| 参数 | 类型 | 说明 | 
|---|---|---|
| left | number | 在混图画面中的区域(水平位置) | 
| top | number | 在混图画面中的区域(垂直位置) | 
| width | number | 在混图画面中的区域宽 | 
| height | number | 在混图画面中的区域高 | 
| type | number | 请见后面type描述 | 
| keepAspectRatio | number | 内容保持原始比例,0不保持,1保持 | 
| param | object | 如:{"camid":"usr2.1"}。请见后面param支持的参数 | 
type描述:
- 当type=0时,表示混图的是摄像头,param必须包含camid;
 - 当type=3时,表示混图的是影音共享,不用附加任何参数;
 - 当type=5时,表示混图的是共享的屏幕,不用附加任何参数;
 - 当type=6时,表示混图的是白板,不用附加任何参数;
 - 当type=10时,表示混图的是文本,width和height将被忽略,元素大小由文本信息自动确定。 param必须包含text,可选color,background,font-size,text-margin;
 
param 支持的参数如下:
- camid:用户id.摄像头id, 如:"testuser.1"
 - text:文本内容,支持时间戳参数"%timestamp%",格式为:YYYY-MM-DD HH:MM:SS
 - color:文本颜色,格式:#RRGGBB[AA], 默认#FFFFFF
 - background:背景色,格式:#RRGGBB[AA], 默认#0000007D
 - font-size:字体大小,默认18
 - text-margin:边距,默认5
 
云端混图器信息
CloudMixerInfo
- Type:object
 
| 参数 | 类型 | 说明 | 
|---|---|---|
| ID | string | 混图器ID | 
| owner | string | 创建者用户ID | 
| cfg | object | 录制配置,参见CloudMixerCfgObj | 
| state | number | 录制状态,参见MIXER_STATE | 
云端混图器输出信息
CloudMixerOutputInfo
| 参数 | 类型 | 说明 | 
|---|---|---|
| id | string | 混图器ID | 
| state | number | 状态,参见CLOUDMIXER_OUTPUT_STATE  state为2时:startTime, duration, fileSize参数有效; state为3时:errCode, errDesc参数有效; state为4时:progress参数有效; state为6时:errCode, errDesc参数有效;  | 
| svrFilePathName | string | 录像路径文件名 | 
| startTime | number | 创建时间(从1970年1月1日00:00:00起的毫秒数) | 
| duration | number | 录像时长(ms) | 
| fileSize | number | 文件大小(Byte) | 
| errCode | number | 错误码 | 
| errDesc | string | 错误描述 |