音视频通话

类型定义

更新时间: 2024/11/18 11:14:09

CRVideo_SDKParams

SDK初始化参数对象

类型:Object

参数
类型
含义
isSDKConsole Bool 是否开启浏览器控制台SDK日志显示,非必传,缺省为true,开启
isUploadLog Bool 是否开启SDK日志上传,非必传,缺省为true,开启
svrTimeout Number 与服务器通信超时时间(秒),取值(10-120),非必传,缺省为60
securityEnhancement Bool 是否启用安全增强模式,非必传,缺省为false,不启用
videoSendBW Number 单个视频画面上送最大码率(带宽)Kbps,非必传,缺省为2048,即256KB/s
screenSendBW Number 屏幕共享画面上送最大码率(带宽)Kbps,非必传,缺省不设置上限
mediaSendBW Number 影音共享画面上送最大码率(带宽)Kbps,非必传,缺省不设置上限
isHttp Bool 是否强制使用http协议(默认为https),非必传,缺省为false,不启用
isCallSer Bool 是否启用队列呼叫服务,非必传,缺省为true,启用
isWebRTC Bool 是否启用音视频服务,非必传,缺省为true,启用
MSProtocol Number 流媒体打洞协议,0:自动,1:UDP,2:TCP,非必传,缺省为1,UDP协议
virtualBackgroundAssets String 非必填,虚拟背景人像分割模型依赖资源目录路径,使用虚拟背景功能需提前设置此参数。

1、"virtualBackgroundAssets" 参数为虚拟背景人像分割模型依赖资源目录的加载路径,非背景图url。支持相对路径(SDK包内和SDK文件同目录的VirtualBackgroundSource文件夹,相对于当前文件)、绝对路径及cdn。例如:
"https://cdn.jsdelivr.net/npm/@mediapipe/selfie_segmentation"
"https://www.unpkg.com/@mediapipe/selfie_segmentation"
"../SDK/VirtualBackgroundSource"
2、"securityEnhancement" 参数启用安全增强模式后,SDK内部webapi请求会有跨域问题,需要业务服务器配置代理,CRVideo_SetServerAddr接口配置代理地址

CRVideo_UserStatus

用户在线信息

类型:Object

参数
类型
含义
userID String 用户ID
userStatus Number 用户的在线状态(0离线 1空闲 2忙碌)
DNDType Number 用户的免打扰状态(0关闭免打扰 1开启免打扰)

CRVideo_QueueInfo

队列信息

类型:Object

参数
类型
含义
queID Number 队列ID
prio Number 优先级,值越小优先级越高
name String 队列名称
desc String 队列描述

CRVideo_QueStatus

队列状态

类型:Object

参数
类型
含义
queID Number 队列ID
agent_num Number 正在服务此队列坐席数
wait_num Number 正在此队列排队的客户数
srv_num Number 此队列当前正在服务中的客户数

CRVideo_QueUser

队列用户信息

类型:Object

参数
类型
含义
queID Number 队列ID
userID String 用户ID
nickname String 用户昵称
queuingTime Number 用户已排队时长(秒)
usrExDat String 用户排队时携带的拓展数据

CRVideo_QueuingInfo

排队信息

类型:Object

参数
类型
含义
queID Number 队列ID
position Number 我当前的位置
queuingTime Number 我排队的时长(单位s)

CRVideo_SessionInfo

会话信息

类型:Object

参数
类型
含义
callID String 呼叫全局标识ID
peerID String 会话中对方的UID
peerName String 会话中对方的昵称
bCallAccepted Number 呼叫是否已接受,0:暂未接受,1:已接受
meetingID Number 当前会话中的房间ID
meetingPswd String 当前会话中房间的密码
duration Number 当前会话持续的时间,单位:s

CRVideo_CreateParams

创建房间的参数对象

类型:Object

参数
类型
含义
meetSubject String 房间名称
needPswd Number 是否创建密码(0:房间无密码,1:系统为房间随机创建一个密码)
isRegular Number 是否为固定房间(0:普通房间,房间无人30分钟后,自动消毁; 1:固定房间,房间一直存在直到用户主动消毁它)

CRVideo_RoomInfoObj

房间信息对象

类型:Object

参数
类型
含义
ID Number 房间号
pswd String 房间密码
subject String 房间主题
pubMeetUrl String 房间公共链接

CRVideo_MemberInfo

成员信息

类型:Object

参数
类型
含义
userID String 用户ID
nickname String 昵称
audioStatus Number 音频状态,数值参考麦克风状态定义 CRVideo_ASTATUS
videoStatus Number 视频状态,数值参考摄像头(视频)状态定义 CRVideo_VSTATUS

CRVideo_VideoInfoObj

用户摄像头信息

类型:Object

参数
类型
含义
userID String 用户ID
videoID Number 摄像头ID
videoName String 摄像头名称

CRVideo_LocVideoAttributes

私有参数配置对象

类型:Object

参数
类型
含义
constraints Object 参见MDN文档MediaTrackConstraints,设置后CRVideo_VideoCfg配置将失效

CRVideo_CloudVideoCfg

云台摄像头配置对象

类型:Object

参数
类型
含义
pan Number 云台摄像头水平方向值,取值范围可调用CRVideo_GetVideoTrackCapabilities获取
tilt Number 云台摄像头竖直方向值,取值范围可调用CRVideo_GetVideoTrackCapabilities获取
zoom Number 云台摄像头缩放系数,取值范围可调用CRVideo_GetVideoTrackCapabilities获取

CRVideo_MicInfoObj

用户麦克风信息

类型:Object

参数
类型
含义
micID Number 麦克风ID
micName String 麦克风名称

CRVideo_SpeakerInfoObj

用户扬声器信息

类型:Object

参数
类型
含义
speakerID Number 扬声器ID
speakerName String 扬声器名称

CRVideo_AudioCfg

系统音频参数

类型:Object

参数
类型
含义
micID Number 麦克风ID
speakerID Number 扬声器ID
autoGainControl Bool 是否开启麦克风自动增益(AGC)
echoCancellation Bool 是否开启麦克风回声消除
noiseSuppression Bool 是否开启麦克风噪声消除
micVolume Number 设置麦克风音量(静态增益)

设置麦克风音量必须在关闭麦克风自动增益时才能生效
麦克风音量为0时,表示麦克风静音,100为正常音量,0-100为降低音量,>100时为增大音量

CRVideo_PCMJSONParams

音频PCM配置参数对象

类型:Object

参数
类型
含义
sampleBits Number 采样位数,一般8,16,默认16(可选参数,非必传)
sampleRate Number 采样率,一般 11025、16000、22050、24000、44100、48000,默认为16000,即16khz(可选参数,非必传)
eachSize Number 回调数据大小,单位字节,getType=0 时 eachSize 和 eachTime 二选一必须配置其中一个,若两个参数同时配置,则先满足其中某个参数时即触发回调
eachTime Number 回调数据时间间隔,单位秒,getType=0 时 eachSize 和 eachTime 二选一必须配置其中一个,若两个参数同时配置,则先满足其中某个参数时即触发回调
fileName String 文件名(不带后缀),getType=1 时必须配置

CRVideo_VideoCfg

系统视频参数对象

类型:Object

参数
类型
含义
size Number 视频尺寸(1:流畅  2:标清  3:高清  4:超清)
fps Number 视频帧率(5~30)
ratio Number 预置视频画面比例(1:16/9 2:4/3 3:1/1 4:3/4 5:9/16)
aspectRatio Number 自定义视频画面比例,如 16/10, 0.65, 1。此参数和ratio只能选其中一个
maxbps Number 最大码率(bps)

SDK默认视频尺寸为 2:标清,默认帧率为 15fps
PC端视频画面默认比例为 1:16/9,移动端视频画面默认比例为 3:1/1
其中某项为null或0时,表示该项使用缺省值。您也可以通过传null来使某项恢复使用缺省值。

CRVideo_VirtualBgCfg

虚拟背景配置对象

类型:Object

参数
类型
含义
type Number 0: 关闭虚拟背景
1:开启纯色背景
2:开启图像背景
color String 背景颜色,type=1时有效。例如: "#3333bb"
image Image Image对象(非url),type=2时有效。
destroy Boolean 非必传,是否释放虚拟背景资源,如果不释放资源下次能更快速的启动虚拟背景,当type=0时有效,默认值为true。
debuggerStyle Object 非必传,是否开启源视频预览,该参数传入源视频的预览样式。例如:{width: "200px"}

image参数为Image实例对象,new Image() 或 <img>DOM,并非图片的url

CRVideo_ScreenShareCfg

屏幕共享配置参数对象

类型:Object

参数
类型
含义
catchRect Object 共享区域 例如:{ left:100, top:100, width:400, height:400 },不设置区域时此参数不传或传null
maxFPS Number 最大帧率
maxKbps Number 最大码率(kbps)

其中某项为null或0时,表示该项使用缺省值。您也可以通过传null来使某项恢复使用缺省值。

CRVideo_MediaCfg

影音共享配置参数对象

类型:Object

参数
类型
含义
size String 自定义尺寸(宽*高),如:1280*720
fps Number 最大帧率
maxKbps Number 最大码率(kbps)

其中某项为null或0时,表示该项使用缺省值。您也可以通过传null来使某项恢复使用缺省值。

CRVideo_ElectronConstraints

Electron屏幕共享配置

类型:Object

参数
类型
含义
constraints Object 该值将作为参数透传给navigator.mediaDevices.getUserMedia,可以参考 Electron捕获窗口

CRVideo_CreateUIParams

创建成员视频UI显示组件的参数

类型:Object

参数
类型
含义
poster String video标签的poster属性,当视频显示控件没有视频画面时的默认占位图片,非必传
style Object video标签的style属性对象,标签css样式,非必传。例如:style:{objectFit:"cover",backgroundColor:"#000"} 等

此对象里面的各参数即video标签的官方属性,可以参考 https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement

CRVideo_MediaInfoObj

影音信息

类型:Object

参数
类型
含义
userID String 用户ID
state Number 播放状态 0:播放中 1:暂停中 2:未播放
mediaName String 影音文件名

CRVideo_CloudMixerInfo

云端混图器信息

类型:Object

参数
类型
含义
ID String 混图器ID
owner String 创建者用户ID
cfg Object 录制配置,参见CRVideo_CloudMixerCfgObj
state Number 录制状态,参见CRVideo_MIXER_STATE

CRVideo_CloudMixerCfgObj

云端混图器配置

类型:Object

参数
类型
含义
mode Number 录制模式,取值范围:
0-合流模式:将声音录制到一个声音文件、或将声音图像录制成一个视频文件;
1-单流模式:将涉及到的声音流、图像流存到各自独立的文件中;
audioFileCfg CRVideo_CloudMixerAudioFileCfg 生成音频文件配置,生成规则:进入房间并开启麦克风开始生成文件,离开房间结束生成文件
videoFileCfg CRVideo_CloudMixerVideoFileCfg 生成视频文件配置,生成规则:进入房间并开启摄像头开始生成文件,离开房间结束生成文件
storageConfig CRVideo_CloudStorageConfig 云存储配置,不配置时将存储在云屋服务器上
示例:
        //为房间中所有人录制独立的声音文件,独立的默认摄像头视频文件
        {
            "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"}
                    }
                ]
            }
        }

CRVideo_CloudMixerAudioFileCfg

云端录制语音文件配置

类型: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"],第一个人的为左声道,第二个人为右声道)
单声道模式时:可选参数(默认为空),空代表所有人声音,要指定人员声音时传入:["UserID1","UserID2", "UserID3"]

CRVideo_CloudMixerVideoFileCfg

云端录制视频文件配置

类型:Object

单流模式参数:
参数
类型
必传
含义
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"],第一个人的为左声道,第二个人为右声道)
单声道模式时:可选参数(默认为空),空代表所有人声音,要指定人员声音时传入:["UserID1","UserID2", "UserID3"]
vWidth Number 视频宽度
vHeight Number 视频高度
vFps Number 视频帧率,取值0-30, 默认值12
vBps Number 视频码率,取值参见视频流默认码率定义 默认会根据视频尺寸生成码率
vQP Number 视频质量,取值0~51(0表示完全无损, 51表示质量非常差),推荐高质量取值18,中质量25,低质量34, 默认值19
layoutConfig Array 布局内容列表,[CRVideo_MixerContentObj,CRVideo_MixerContentObj,...]

CRVideo_CloudStorageConfig

云端录制存储配置

类型:Object

参数
类型
必传
含义
vendor Number 第三方云存储平台: 1-阿里云
region String 第三方云存储指定的地区信息
bucket String 第三方云存储的 bucket
accessKey String 第三方云存储的 access key
secretKey String 第三方云存储的 secret key
endPoint String 第三方云存储的完整路径,当设置该参数后,region参数将不再生效

CRVideo_MixerContentObj

混图器内容配置

类型:Object

参数
类型
含义
left Number 在混图画面中的区域(水平位置)
top Number 在混图画面中的区域(垂直位置)
width Number 在混图画面中的区域宽
height Number 在混图画面中的区域高
type Number MIXER_VCONTENT_TYPE,请见后面type描述;
keepAspectRatio Number 内容保持原始比例,0不保持,1保持
param Object 如:{"camid":"usr2.1"}。请见后面param支持的参数;
示例:
    //录制“usr1”的1号摄像头
    {
        type: 0,
        keepAspectRatio: 1,
        left: 5,
        top: 10,
        width: 633,
        height: 356,
        param: {
            camid: "usr1.1"
        }
    }

    //录制“usr2”的1号摄像头
    {
        type: 0,
        keepAspectRatio: 1,
        left: 642,
        top: 10,
        width: 633,
        height: 356,
        param: {
            camid: "usr2.1"
        }
    }

    //录制时间戳
    {
        type: 10,
        left: 980,
        top: 660,
        param: {
            text: '%timestamp%',
            color: "#ffffff",
            "font-size": 30
        },
    }

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:字体大小px,默认:18 (不带单位)
text-margin:边距px,默认:5 (不带单位)

CRVideo_CloudMixerOutputInfo

云端混图器输出信息

类型:Object

参数
类型
含义
id String 混图器ID
state Number 具体参考CRVideo_OUTPUT_STATE
svrFilePathName String 录像路径文件名
startTime Number 创建时间(从1970年1月1日00:00:00起的毫秒数),当state为2才有该参数
duration Number 录像时长(ms),当state为2才有该参数
fileSize Number 文件大小(Byte),当state为2才有该参数
errCode Number 错误码, 当state为3才有该参数
errDesc String 错误描述, 当state为3才有该参数

CRVideo_MeetingAttrObjs

会议属性集

类型:Object

参数
类型
含义
value String 属性值
lastModifyUserID String 最后修改者
lastModifyTs Number 最后的修改时间,1970-1-1 0:00:00以来的秒数
示例:
        {
            "userdef Key1": {
                "value": "11111",
                "lastModifyUserID": "111",
                "lastModifyTs": 11111
            },
            "userdef Key2": {
                "value": "22222",
                "lastModifyUserID": "222",
                "lastModifyTs": 22222
            }
        }

CRVideo_UsrMeetingAttrObjs

用户属性集

类型:Object

参数
类型
含义
value String 属性值
lastModifyUserID String 最后修改者
lastModifyTs Number 最后的修改时间,1970-1-1 0:00:00以来的秒数
示例:
        {
            "userid1": {
                "userdef Key1": {
                    "value": "11111",
                    "lastModifyUserID": "111",
                    "lastModifyTs": 11111
                },
                "userdef Key2": {
                    "value": "22222",
                    "lastModifyUserID": "222",
                    "lastModifyTs": 22222
                }
            },
            "userid2": {
                "userdef Key1": {
                    "value": "11111",
                    "lastModifyUserID": "111",
                    "lastModifyTs": 11111
                },
                "userdef Key2": {
                    "value": "22222",
                    "lastModifyUserID": "222",
                    "lastModifyTs": 22222
                }
            }
        }

CRVideo_MeetingAttrOptions

操作房间属性选项

类型:jsonString

参数
类型
含义
notifyAll Number 1:通知房间所有人员,0(默认值):不通知。
示例:
        '{"notifyAll":1}'

CRVideo_MarkOptions

屏幕共享标注参数对象

类型:Object

参数
类型
含义
allowMark Bool 是否允许标注。非必传,缺省为 false,不允许标注
type Number 画笔类型。非必传,缺省为 1,铅笔
strokeStyle String 画笔颜色。非必传,缺省为 '#000000',黑色
lineWidth Number 画笔线宽px。为必传,缺省为 2,2px
cursor String 画笔鼠标样式,如:'url("./image/pc/meeting_pen1_.ico"), auto'。非必传,缺省为 'default',默认样式
示例:
        {
            "allowMark": true,
            "type": 1,
            "strokeStyle": "#ff0000",
            "lineWidth": 3,
            "cursor": 'url("./image/pc/meeting_pen1_.ico"), auto'
        }

CRVideo_PeerConnectionErrorObject

流媒体连接错误对象定义

类型:Object

参数
类型
含义
userID String 用户ID
nickname String 发生错误的用户昵称
camID Number 发生错误的摄像头ID
errDesc String 错误描述