对象结构定义
Sdk初始化数据实体类
com.cloudroom.cloudroomvideosdk.model.SdkInitDat
成员变量 | 类型 | 说明 |
---|---|---|
sdkDatSavePath | String | SDK内部使用文件位置 |
noCall | boolean | 是否使用呼叫业务(可减少登录环节、及通信需求) |
noQueue | boolean | 是否使用sdk的排队功能的业务(可减少登录环节、及通信需求) |
noMediaDatToSvr | boolean | 是否与服务器实时流媒体数据(可减少复杂度,加快登录速度) |
timeOut | int | 网络通信超时时间(10000-120000),单位是毫秒,超出范围时就近取边界值 |
datEncType | String | 数据加密类型("0":敏感数据加密,"1":全面加密; 缺省:"1") |
房间对象数据类
com.cloudroom.cloudroomvideosdk.model.MeetInfo
成员变量 | 类型 | 说明 |
---|---|---|
ID | int | 房间号,数值0代表房间信息无效 |
pswd | String | 房间密码;(空代表房间无密码) |
subject | String | 房间主题 |
pubMeetUrl | String | 房间公共链接 |
hostPswd | 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 | 是否开启回声消除,默认开启 |
视频配置
com.cloudroom.cloudroomvideosdk.model.VideoCfg
成员变量 | 类型 | 说明 |
---|---|---|
size | Size | 视频尺寸 |
fps | int | 视频帧率(5~30) |
maxbps | int | 视频码率(1~10010001000)(未配置则使用内部默认值) |
minQuality | int | 最佳质量(18~51,越小质量越好) (未配置则使用内部默认值25) |
maxQuality | int | 最差质量(18~51, 越大质量越差) (未配置则使用内部默认值36) |
注意事项
- 我们采用的是vbr编码(由质量+码率,双重控制)
- qp范围:质量参数,为的是达到目标质量后,无需花费更大码率提高质量
- maxbps码率控制,是为了确保结果一定不大于“目标码率”(体积受控), 当要超出码率控制时,自动降低质量;当质量达到目标时,自动减少码率甚至无码率输出 注:使用硬编时第二点是无效的。
视频设备私有属性
com.cloudroom.cloudroomvideosdk.model.VideoAttributes
成员变量 | 类型 | 说明 |
---|---|---|
disabled | int | 取值0:不禁用此设备(默认值),1:禁用此设备; |
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.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 | 在录制画面中的区域(相对于录像尺寸) |
param | int | 提供混图支持的参数 |
成员方法说明
成员方法 | 参数 | 返回值 | 描述 |
---|---|---|---|
createVideoContent(静态) | String userID | MixerCotent | 通过摄像头ID,将摄像头配置到混图器录制内容中 |
short camID | |||
Rect rect | |||
createMediaContent(静态) | Rect rect | MixerCotent | 通过摄像头ID,将播放视频配置到混图器录制内容中 |
createPicContent(静态) | String resID | MixerCotent | 通过摄像头ID,将控件图片配置到混图器录制内容中 |
Rect rect |
注意事项
itemRt 在混图画面中的区域(相对于混图器尺寸)
type, 类型MIXER_VCONTENT_TYPE:
- 当type=MIXVTP_VIDEO时,表示混图的是摄像头,param必须包含camid
- 当type=MIXVTP_PIC时,表示混图的是指定的图片,param必须包含resourceid。(仅用于本地混图)
- 当type=MIXVTP_SCREEN时,表示混图的是本地屏幕,param可以增加附加参数screenid/pid/area
- 当type=MIXVTP_TIMESTAMP时,表示混图的是时戳,不用附加任何参数
- 当type=MIXVTP_REMOTE_SCREEN时,表示混图的是远端共享的屏幕,不用附加任何参数
- 当type=MIXVTP_WBOARD时,表示混图的是白板,不用附加任何参数。(仅用于云端混图,本地混图应该用MIXVTP_PIC)
- 当type=MIXVTP_TEXT时,表示混图的是文本(支持简单html),param必须包含resourceid和text
param 支持的参数如下:
- camid 用户id.摄像头id, 如:"testuser.1"
- resourceid 具有唯一属性的字符串id,通过setPicResource方法将图片存储到id内供混图模块使用
- screenid 屏幕序号,-1表示主屏
- pid 进程号
- area 抓屏区域:x,y,w,h, 如:"10,20,400,800",无此参数时代表抓全屏
MIXVTP_TEXT时,width和height可为0,此时元素大小由文本信息自动确定
混图器输出配置
com.cloudroom.cloudroomvideosdk.model.MixerOutPutCfg
成员变量 | 类型 | 说明 |
---|---|---|
type | MIXER_OUTPUT_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 | MIXER_OUTPUT_STATE | 状态 |
duration | long | 录像文件时长,单位:毫秒; |
fileSize | long | 录像文件大小; |
errCode | CRVIDEOSDK_ERR_DEF | 错误码 |
注意事项
- 输出对象已创建;
- 输出目标信息更新; 可以从结构中取得duration, fileSize参数;
- 输出对象已关闭; 可以从结构中取得duration, fileSize参数;
- 输出对象异常;可以从结构中取得err参数;
录制文件
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.SubPage
成员变量 | 类型 | 说明 |
---|---|---|
userID | String | 用户id |
pageID | short | 白板页ID |
白板信息
com.cloudroom.cloudroomvideosdk.model.SubPageInfo
成员变量 | 类型 | 说明 |
---|---|---|
page | SubPage | 白板标识 |
title | String | 白板的名字 |
width | int | 宽 |
height | int | 高 |
pageCount | int | 页数 |
curPage | int | 当前页 |
pagePos1 | int | 扩展参数1 |
pagePos2 | int | 扩展参数2 |
网盘文件
com.cloudroom.cloudroomvideosdk.model.FileInfo
成员变量 | 类型 | 说明 |
---|---|---|
ownerID | short | 文件所有者的ID |
ownerName | String | 文件所有者的名称 |
name | String | 在服务器上的文件名 |
orgFileName | String | 用户的原始文件名 |
md5 | String | 压缩后的md5(如果不压缩,则原文件md5) |
ctime | String | 上传时间,字符串,格式"yyyy-MM-dd hh:mm:ss" |
size | int | 在服务器上的大小(单位B,类型ulong) |
orgSize | int | 原始文件大小(单位B,类型ulong) |
status | int | 文件状态 |
网盘容量信息
com.cloudroom.cloudroomvideosdk.model.DiskSummary
成员变量 | 类型 | 说明 |
---|---|---|
confDiskLimit | int | 网盘总容量(KB) |
confDiskUsed | int | 网盘已用容量(KB) |
队列信息
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 | 我的位置 |
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 | 文件传输状态 |
文档列表
com.cloudroom.cloudroomvideosdk.model.NetDiskDocDir
成员变量 | 类型 | 说明 |
---|---|---|
name | String | 在网盘里的文件名 |
files | ArrayList<FileInfo> | 目录下的所有文件 |
subDirs | ArrayList<NetDiskDocDir> | 目录下的所有目录 |
文档页信息
com.cloudroom.cloudroomvideosdk.model.NetDiskDocFilePageInfo
成员变量 | 类型 | 说明 |
---|---|---|
width | int | 文档的图像宽度 |
height | int | 文档的图像高度 |
fileList | ArrayList<String> | 每页文档在服务器上的路径文件名 |
白板图元
BoardElement
成员变量 | 类型 | 说明 |
---|---|---|
elementID | String | 图元id |
type | int | 图元的类型,值100以下为云屋保留值,100及以上为自定义值 |
left | String队列 | 图元在页内距离的左角位置 |
top | String队列 | 图元在页内距离的上角位置 |
注意事项
- 白板图元是后台服务器返回的json数据,而不是一个具体的实体类
- elementID必须调用createElementID获取, 即使是曾经调此接口创建的然后存入了磁盘文件,再次读入房间时,所有elementID也需要重新生成
- 如果要和云屋产品互通,那就需要按云屋的定义取值,可以联系云屋获取相关文档,网盘文件
← 常量定义 SDK及Demo下载→