类型定义
更新时间: 2024/09/06 14:40:06初始化配置
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请联系云屋销售获取,并开通相关套餐和功能权限。 |
appSecret | string | appID对应的密码(md5加密传给sdk),可登录云屋管理后台修改 |
userId | string | 用户ID,长度不能大于128。和云屋系统无关,业务方自由填写,保证唯一性即可(同一appID下,具有唯一性即可) |
nickname | string | 昵称, 长度不能大于128 |
userAuthCode | string | 只有开启第三方认证才需要填写。(开启第三方认证时,云屋SDK服务器将连接提前配好的业务方服务器进行实时验证。) |
房间对象数据类
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 |
用户视频信息列表
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"],第一个人的为左声道,第二个人为右声道) 单声道模式时:可选参数(默认为空),空代表所有人声音,要指定人员声音时传入:["UserID1","UserID2", "UserID3"] |
否 |
云端录制视频文件配置
- 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"],第一个人的为左声道,第二个人为右声道) 单声道模式时:可选参数(默认为空),空代表所有人声音,要指定人员声音时传入:["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 | 布局内容列表,[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 | 错误描述 |