音视频通话

类型定义

更新时间: 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 错误描述