音视频通话

类型定义

Sdk初始化信息

com.cloudroom.cloudroomvideosdk.model.SdkInitDat

成员变量 类型 说明
sdkDatSavePath String SDK内部使用文件位置
timeOut int 网络通信超时时间(10000-120000),单位是毫秒,超出范围时就近取边界值,缺省:60s
datEncType String 数据加密类型("0":敏感数据加密,"1":全面加密; 缺省:"1")

登录信息

com.cloudroom.cloudroomvideosdk.model.LoginDat

成员变量 类型 说明
authAcnt String appID用于区分不同的项目,每个项目都有属于自己的唯一的appID,不同appID的项目完全独立,无法相互通信。appID请联系云屋销售获取,并开通相关套餐和功能权限
authPswd String appID对应的密码(md5加密传给sdk),可登录云屋管理后台修改。
privAcnt String 自定义帐号, 云屋服务器将会去配置的服务器进行认证(当不使用自定义帐号时,privAuthCode应为null)
privAuthCode String 默认填空。只有开启第三方认证才需要填写。(开启第三方认证时,云屋SDK服务器将连接提前配好的业务方服务器进行实时验证。)
param String 用户扩展信息

房间信息

com.cloudroom.cloudroomvideosdk.model.MeetInfo

成员变量 类型 说明
ID int 房间号,数值0代表房间信息无效
pubMeetUrl String 房间公共链接

用户状态

com.cloudroom.cloudroomvideosdk.model.UserStatus

成员变量 类型 说明
userID String 用户id
userStatus CLIENT_STATUS 用户的在线状态
DNDType boolean 用户免打扰状态,参见setDNDStatus

大小描述

com.cloudroom.cloudroomvideosdk.model.Size

成员变量 类型 说明
width int
height int

房间成员信息

com.cloudroom.cloudroomvideosdk.model.MemberInfo

成员变量 类型 说明
userID String 用户ID
nickname String 用户昵称
audioStatus ASTATUS 音频状态
videoStatus VSTATUS 视频状态

音频配置

com.cloudroom.cloudroomvideosdk.model.AudioCfg

成员变量 类型 说明
_micName String 麦克风设备名称(空代表系统默认设备)
_speakerName String 扬声器名称(空代表系统默认设备)
agc boolean 是否开启声音增益,默认开启
ans boolean 是否开启降噪,默认开启
aec boolean 是否开启回声消除,默认开启

AudioFrame 音频帧数据

参数 类型 说明
format AUDIO_FORMAT 音频格式
timestamp long 时间戳(ms)
data ByteBuffer 音频数据

视频配置

com.cloudroom.cloudroomvideosdk.model.VideoCfg

成员变量 类型 说明
size Size 视频尺寸 (这里总按横屏配置,sdk内部会应用手机旋转角度)
fps int 视频帧率(5~30)
maxbps int 视频码率(1000~100000000, 例如1m:1000000);(未配置则使用内部默认值,详见定义视频流默认码率定义)
minQuality int 最佳质量(18~51,越小质量越好) (未配置则使用内部默认值25)
maxQuality int 最差质量(18~51, 越大质量越差) (未配置则使用内部默认值36)
  • 注意事项

    • 我们采用的是vbr编码(由质量+码率,双重控制)
    • qp范围:质量参数,为的是达到目标质量后,无需花费更大码率提高质量
    • maxbps码率控制,是为了确保结果一定不大于“目标码率”(体积受控), 当要超出码率控制时,自动降低质量;当质量达到目标时,自动减少码率甚至无码率输出 注:使用硬编时第二点是无效的。

视频效果配置

com.cloudroom.cloudroomvideosdk.model.VideoEffects

成员变量 类型 说明
denoise boolean 视频降噪
upsideDown boolean 视频上下翻转
mirror int 视频左右镜像(-1:自动,0:关,1:开)
degree int 视频旋转(-1:自动,0-270:旋转角度)

视频设备私有属性

com.cloudroom.cloudroomvideosdk.model.VideoAttributes

成员变量 类型 说明
disabled int 取值0:不禁用此设备(默认值),1:禁用此设备;
effects VideoEffects 视频效果配置
quality1Cfg VideoCfg 第一档视频配置,未配置时采用全局配置
quality2Cfg VideoCfg 第二档视频配置,未配置代表关闭对应档位视频流
  • 注意事项

    • 一个摄像头出多档质量的视频流,将带来很大的cpu开销;
    • 通过setUsrVideoId可以选择观看的视频流;

用户视频信息

com.cloudroom.cloudroomvideosdk.model.UsrVideoInfo

成员变量 类型 说明
videoName String 设备名称
isIPCamera boolean 是否IP摄像头

用户摄像头

com.cloudroom.cloudroomvideosdk.model.UsrVideoId

成员变量 类型 说明
userId String 用户id
videoID String 设备id

视频配置

com.cloudroom.cloudroomvideosdk.model.VideoStreamInfo

成员变量 类型 说明
w short 视频宽
h short 视频高
fps float 视频帧率(5~30)
bps int 视频码率(1000~100000000, 例如1m:1000000);(未配置则使用内部默认值,详见定义视频流默认码率定义)
minQuality int 最佳质量(18~51,越小质量越好) (未配置则使用内部默认值25)
maxQuality int 最差质量(18~51, 越大质量越差) (未配置则使用内部默认值36)
  • 注意事项

    • 我们采用的是vbr编码(由质量+码率,双重控制)
    • qp范围:质量参数,为的是达到目标质量后,无需花费更大码率提高质量
    • maxbps码率控制,是为了确保结果一定不大于“目标码率”(体积受控), 当要超出码率控制时,自动降低质量;当质量达到目标时,自动减少码率甚至无码率输出 注:使用硬编时第二点是无效的。

屏幕共享标注信息

com.cloudroom.cloudroomvideosdk.model.ScreenMarkData

成员变量 类型 说明
userID String 标注者用户ID
useridSN short 标注SN
color int 标注颜色
mousePosSeq byte[] 标注数据

屏幕共享删除标注信息

com.cloudroom.cloudroomvideosdk.model.RemoveScreenMarkData

成员变量 类型 说明
userID String 标注者用户ID
useridSN short 标注SN

混图器规格配置

com.cloudroom.cloudroomvideosdk.model.MixerCfg

成员变量 类型 说明
dstResolution Size 图像大小
frameRate int 图像帧率,取值范围:1-30(值越大,cpu要求更高,录像推荐15帧,直播推存25帧)
bitRate int 录制视频文件的最高码率,当图像变化小时,实际码率会低于此值
defaultQP int 录制视频文件的缺省质量,缺省值:26
gop int I帧周期(I帧越少码率越小,但直播延时会越大); 文件录制建议15秒一个I帧取值:fpsx15; 直播建议4秒一个I帧取值: fpsx4;
  • 注意事项

    • bitRate的设置应该按照录制大小:

      • 640 * 360大小录制对应 500000 -- (500kbps)
      • 1280 * 720大小录制对应 1000000 -- (1mbps)
      • 1920 * 1080大小录制对应 2000000 -- (2mbps)
    • defaultQP取值范围:0~51,0表示完全无损, 51表示质量非常差,推荐高质量取值18,中质量26, 低质量34。

混图器内容配置

com.cloudroom.cloudroomvideosdk.model.MixerCotent

成员变量 类型 说明
type MIXER_VCONTENT_TYPE 混图内容类型
rect Rect 在混图画面中的区域(相对于混图尺寸)

成员方法说明

成员方法 参数 返回值 描述
createVideoContent(静态) String userID MixerCotent 通过摄像头ID,将摄像头配置到混图器内容中
short camID
Rect rect
createMediaContent(静态) Rect rect MixerCotent 将播放影音配置到混图器内容中
createPicContent(静态) String resID MixerCotent 通过资源ID,将图片配置到混图器内容中
Rect rect
createRemoteScreenContent(静态) Rect rect MixerCotent 将远端屏幕到混图器内容中
createScreenContent(静态) Rect rect MixerCotent 将共享屏幕配置到混图器内容中
createTextContent(静态) String text MixerCotent 将文字配置到混图器内容中
Rect rect
  • 注意事项

    • type, 类型MIXER_VCONTENT_TYPE:
      • 当type=MIXVTP_VIDEO时,表示混图的是摄像头
      • 当type=MIXVTP_PIC时,表示混图的是指定的图片(仅用于本地混图)
      • 当type=MIXVTP_SCREEN时,表示混图的是本地屏幕
      • 当type=MIXVTP_MEDIA时,表示混图的是影音共享
      • 当type=MIXVTP_TIMESTAMP时,表示混图的是时戳
      • 当type=MIXVTP_REMOTE_SCREEN时,表示混图的是远端共享的屏幕
      • 当type=MIXVTP_WBOARD时,表示混图的是白板(仅用于云端混图,本地混图应该用MIXVTP_PIC)
      • 当type=MIXVTP_TEXT时,表示混图的是文本(支持简单html) (此type下,width和height可为0,此时元素大小由文本信息自动确定)

混图器输出配置

com.cloudroom.cloudroomvideosdk.model.MixerOutPutCfg

成员变量 类型 说明
type MIXER_OUTPUT_TYPE 输出类型
filename String 录像路径文件名(本地录像名格式如:/sdcard/1.mp4,服务器录像名格式如:/2018-11-21/1.mp4),支持的文件格式为mp4/ts/flv/avi,其中flv和ts两种格式在程序异常结束时产生的录制文件仍可用。
encryptType int 录像文件是否加密,0:不加密,1:加密;
isUploadOnRecording boolean 录像文件是否边录边传,false:不上传,true:边录边传; (此参数仅本地录像有效)
serverPathFileName String 边录边传时,上传到服务器的路径文件名; (此参数仅本地录像有效)
liveUrl String 直播推流地址,支持rtmp/rtsp
errRetryTimes int 直播推流异常时,重试次数

录制文件、直播信息通知

com.cloudroom.cloudroomvideosdk.model.MixerOutputInfo

成员变量 类型 说明
state int 状态,参见MIXER_OUTPUT_STATE
state为OUTPUT_WRITING时:duration, fileSize参数有效;
state为OUTPUT_CLOSED时:duration, fileSize参数有效;
state为OUTPUT_ERR时:errCode参数有效;
duration long 录像文件时长,单位:毫秒;
fileSize long 录像文件大小;
errCode CRVIDEOSDK_ERR_DEF 错误码

混图器内容配置

MixerContentObj

{"type":0, "keepAspectRatio":1,"left":5,"top":10, "width":633,"height":356,"param":{"camid":"usr1.1"}}
参数 类型 说明
left int 在混图画面中的区域(水平位置)
top int 在混图画面中的区域(垂直位置)
width int 在混图画面中的区域宽
height int 在混图画面中的区域高
type int MIXER_VCONTENT_TYPE,请见后面type描述;
keepAspectRatio int 内容保持原始比例,0不保持,1保持
param obj 如:{"camid":"usr2.1"}。请见后面param支持的参数;

type描述:

  • 当type=CRVSDK_MIXCONT_VIDEO时,表示混图的是摄像头,param必须包含camid;
  • 当type=CRVSDK_MIXCONT_PIC时,表示混图的是指定的图片,param必须包含resourceid;(仅用于本地混图)
  • 当type=CRVSDK_MIXCONT_SCREEN时,表示混图的是本地屏幕,param可以增加附加参数screenid/pid/area/window;(仅用于本地混图)
  • 当type=CRVSDK_MIXCONT_MEDIA时,表示混图的是影音共享,不用附加任何参数;
  • 当type=CRVSDK_MIXCONT_SCREEN_SHARED时,表示混图的是共享的屏幕,不用附加任何参数;
  • 当type=CRVSDK_MIXCONT_WBOARD时,表示混图的是白板,不用附加任何参数;(仅用于云端混图,本地混图应该生成图像用MIXVTP_PIC)
  • 当type=CRVSDK_MIXCONT_TEXT时,表示混图的是文本,width和height将被忽略,元素大小由文本信息自动确定。 param必须包含text,可选color,background,font-size,text-margin;

param 支持的参数如下:

  • camid:用户id.摄像头id, 如:"testuser.1",摄像头id为-1表示默认摄像头
  • resourceid:具有唯一属性的字符串id,通过setPicResource将图片存储到sdk内供混图模块使用
  • screenid:屏幕序号,-1表示主屏
  • pid:进程号
  • area:抓屏区域:"x,y,w,h"
  • text:文本内容,支持时间戳参数"%timestamp%",格式为:YYYY-MM-DD HH:MM:SS
  • color:文本颜色,格式:#RRGGBB[AA], 默认#FFFFFF
  • background:背景色,格式:#RRGGBB[AA], 默认#0000007D
  • font-size:字体大小,默认18
  • text-margin:边距,默认5

云端混图器配置

CloudMixerCfg

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

云端录制语音文件配置

CloudMixerAudioFileCfg

单流模式参数:

参数 类型 说明 是否必传
svrPath string 服务器存储路径,默认为空
svrFileNameSuffix string 文件名后缀,支持:“.mp3”、“.wav”
文件命名规则:昵称_房间号_开始时间.后缀
subscribeAudios array 指定生成哪些人的音频文件;
取值:["_cr_all_"]或["userId1","userId2"];
_cr_all_代表生成所有人;

合流模式参数:

参数 类型 说明 是否必传
svrPathName string 带服务器存储路径的文件名,文件格式支持“mp3”、“wav”,示例:/xxx/xxx/xxx.mp3
aChannelType int 音频通道类型,取值范围:0-单声道,1-左右双声道,默认为0
aChannelContent array 音频通道内容。

左右声道模式时:必须传入两个用户ID,如:["UserID1", "UserID2"],第一个人的为左声道,第二个人为右声道)

单声道模式时:必须为空

云端录制视频文件配置

CloudMixerVideoFileCfg

单流模式参数:

参数 类型 说明 是否必传
svrPath string 服务器存储路径,默认为空
svrFileNameSuffix string 文件名后缀,当前只支持:”.mp4”
文件命名规则:昵称_cam摄像头编号_房间号_开始时间.后缀
subscribeVideos array 指定生成哪些人的摄像头对应的视频文件;
取值:["_cr_all_"]或["_cr_allDefCam_"]或["userId1.camId", "userId2.camId", ...];
_cr_all_代表所有人所有摄像头,_cr_allDefCam_代表生成所有人的默认摄像头
aStreamType int 视频文件内音频内容,取值:0-自己声音,1-所有人声音,默认0

合流模式参数:

参数 类型 说明 是否必传
svrPathName string 带路径的文件名,文件格式支持:mp4、flv、ts、avi、rtmp://、rtsp://,可选一个或多个,以“;”分隔;
示例:”/xxx/xxx.mp4;rtmp://xxx1;rtmp://xxx2;”
aChannelType int 音频通道类型,取值:0-单声道,1-左右双声道,默认为0
aChannelContent array 音频通道内容。

左右声道模式时:必须传入两个用户ID,如:["UserID1", "UserID2"],第一个人的为左声道,第二个人为右声道)

单声道模式时:必须为空
vWidth int 视频宽度
vHeight int 视频高度
vFps int 视频帧率,取值0-30, 默认值12
vBps int 视频码率,取值参见视频流默认码率定义 默认会根据视频尺寸生成码率
vQP int 视频质量,取值0~51(0表示完全无损, 51表示质量非常差),推荐高质量取值18,中质量25,低质量34, 默认值19
layoutConfig array 布局内容列表,[MixerContentObj,MixerContentObj,...]

云端录制存储配置

CloudStorageConfig

参数 类型 说明 是否必传
vendor int 第三方云存储平台: 1-阿里云
region string 第三方云存储指定的地区信息
bucket string 第三方云存储的 bucket
accessKey string 第三方云存储的 access key
secretKey string 第三方云存储的 secret key

云端混图器信息列表

CloudMixerInfoList

CloudMixerInfo列表,参见CloudMixerInfo

CloudMixerInfo

参数 类型 说明
ID string 混图器ID
owner string 创建者用户ID
cfg string 录制配置,json格式串,参见CloudMixerCfg
state int 录制状态,参见MIXER_STATE

云端混图器输出信息

CloudMixerOutputInfo

参数 类型 说明
id string 混图器ID
state int 状态,参见CLOUDMIXER_OUTPUT_STATE
state为CLOUDMO_STOPPED时:startTime, duration, fileSize参数有效;
state为CLOUDMO_FAIL时:errCode, errDesc参数有效;
state为CLOUDMO_UPLOADING时:progress参数有效;
state为CLOUDMO_UPLOADFAIL时:errCode, errDesc参数有效;
svrFilePathName string 录像路径文件名
startTime int64 创建时间(从1970年1月1日00:00:00起的毫秒数)
duration int 录像时长(ms)
fileSize int64 文件大小(Byte)
errCode int 错误码
errDesc string 错误描述

录制文件

com.cloudroom.cloudroomvideosdk.model.RecordFileInfo

成员变量 类型 说明
fileName String 文件名,全路径
startTime long 开始录制时间
duration int 录制时长
fileSize int 文件大小

成员方法说明

成员方法 参数 返回值 描述
clear 清空实体类中的参数

录制文件

com.cloudroom.cloudroomvideosdk.model.RecordFileShow

成员变量 类型 说明
fileName String 文件名,全路径
fileSize int 文件大小
state RECORD_FILE_STATE 文件状态
uploadPercent int 录制结果中视频尺寸高度上传进度

影音文件信息

com.cloudroom.cloudroomvideosdk.model.MediaInfo

成员变量 类型 说明
userID String 用户id
state MEDIA_STATE 播放状态
mediaName String 影音文件名

屏幕共享配置对象

com.cloudroom.cloudroomvideosdk.model.ScreenShareCfg

参数 类型 说明
maxFps int 帧率, 缺省为8 (当网络发不动时,帧率会自动下降)
maxBps int 最大码率,缺省为800kbps

队列信息

com.cloudroom.cloudroomvideosdk.model.QueueInfo

成员变量 类型 说明
queID String 队列ID
name String 队列名称
desc String 队列描述
prio int 优先级,值越小优先级越高

队列状态

com.cloudroom.cloudroomvideosdk.model.QueueStatus

成员变量 类型 说明
queID String 队列ID
agent_num int 坐席数量
wait_num int 排队客户数量
srv_num int 正在服务的客户数量

排队信息

com.cloudroom.cloudroomvideosdk.model.QueuingInfo

成员变量 类型 说明
queID String 我排的队列 (-1:代表我没有排队;-2:代表我正在会话中,通过GetSessionInfo可获取相关信息)
position int 当前位置(0为队列中的第1位,即将被服务)
queuingTime int 我排队的时长(单位s)

会话信息

com.cloudroom.cloudroomvideosdk.model.VideoSessionInfo

成员变量 类型 说明
callID String 会话中的呼叫ID
peerID String 会话中的目标用户ID
peerName String 会话中的目标用户昵称
bCallAccepted boolean 呼叫是否被对方接受 0:暂未接受,1:已接受
meetingID int 会话中分配的房间ID
meetingPswd String 房间密码
duration int 会话持续的时长(秒)

队列用户

com.cloudroom.cloudroomvideosdk.model.UserInfo

成员变量 类型 说明
queID String 队列ID
usrID String 用户ID
name String 用户昵称
queuingTime int 用户排队的时长(单位s)
usrExtDat String 用户排队时传入的扩展参数

Http文件传输请求对象

com.cloudroom.cloudroomvideosdk.model.HttpReqInfo

成员变量 类型 说明
filePathName String 本地完整路径文件名
fileVersio String 文件版本(可以填版本号,也可以md5,也可以为空)
httpUrl String 目标URL
bUploadType boolean 是否上传

Http传输信息对象

com.cloudroom.cloudroomvideosdk.model.FileTransInfo

成员变量 类型 说明
filePathName String 本地完整路径文件名
fileVersio String 文件版本(可以填版本号,也可以md5,也可以为空)
httpUrl String 目标URL
bUploadType boolean 是否上传
extHeaders HashMap<String, String> http头部扩展信息,字典数据
fileSize int 文件大小
finishedSize int 已传输大小
state HTTP_TRANSFER_STATE 文件传输状态

MeetingAttr

会议属性

参数 类型 说明
value String 属性值
lastModifyUserID String 最后修改者
lastModifyTs long 最后的修改时间,1970-1-1 0:00:00以来的秒数

CRVirtualBkCfg虚拟背景参数

参数 类型 说明
type VIRTUALBK_TYPE 请参见CRVIRTUALBK_TYPE
colorKey String 颜色值r,g,b。如:"0,255,0"(仅VBKT_COLORKEY模式时需要配置此参数)
bkImgFile String 背景全路径文件名。(当前只支持jpg格式)
bkImgArea Rect 虚拟背景的区域。

CRBeautyCfg 美颜配置

参数 类型 说明
filters list<CRBeautyFilter> 滤镜列表, 不在列表中的滤镜按不启用处理

CRBeautyFilter 美颜滤镜配置

参数 类型 说明
type CRVSDK_BEAUTYFILTER_TYPE 滤镜类型
level float 滤镜强度,取值0~1.0。0代表不启用,1代表最高强度