音视频通话

类型定义

初始化配置

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),可登录云屋管理后台修改
token string Token鉴权码,使用token登录鉴权appId和appSecret不传
userId string 用户ID,长度不能大于128。和云屋系统无关,业务方自由填写,保证唯一性即可(同一appID下,具有唯一性即可)
nickName string 昵称, 长度不能大于128
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 我的位置
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 云存储配置,不配置时将存储在云屋服务器上

云端录制语音文件配置

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 错误描述