对象结构定义


SdkInitDat

Sdk初始化数据实体类

成员变量 类型 说明
sdkDatSavePath NSString SDK内部使用文件位置
noCall BOOL 是否使用呼叫业务(可减少登录环节、及通信需求)
noQueue BOOL 是否使用sdk的排队功能的业务(可减少登录环节、及通信需求)
noMediaDatToSvr BOOL 是否与服务器实时流媒体数据(可减少复杂度,加快登录速度)
timeOut int 网络通信超时时间(10000-120000),单位是毫秒,超出范围时就近取边界值
showSDKLogConsole BOOL 是否输出SDK日志到控制台,发布版本建议设置不输出
datEncType NSString 数据加密类型(0:敏感数据加密,1:全面加密; 缺省:1)
isMultiDelegate BOOL 配置是否启用多代理模式

LoginDat

登录数据实体类

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

MeetInfo

房间对象数据类

成员变量 类型 说明
ID int 房间号,数值0代表房间信息无效
pswd NSString 房间密码;(空代表房间无密码)
subject NSString 房间主题
pubMeetUrl NSString 房间公共链接
hostPswd NSString 主持人密码

UserStatus

用户状态

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

MemberInfo

房间成员信息

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

AudioCfg

音频配置

成员变量 类型 说明
micName NSString 麦克风设备名称(空代表系统默认设备)
speakerName NSString 扬声器名称(空代表系统默认设备)
agc int 是否开启声音增益,0:不开启;1:开启(默认值)
ans int 是否开启降噪,0:不开启;1:开启(默认值)
aec int 是否开启回声消除,0:不开启;1:开启(默认值)

VideoCfg

视频配置

成员变量 类型 说明
sizeType VIDEO_SIZE_TYPE 视频尺寸,详见定义VIDEO_SIZE_TYPE
whRate VIDEO_WHRATE_TYPE 视频比例(支持:WHRATE_16_9、WHRATE_4_3、WHRATE_1_1)
fps int 视频帧率(5~30)
maxbps int 视频码率(1000~100000000, 例如1m:1000000);(未配置则使用内部默认值,详见定义VIDEO_SIZE_TYPE)
minQuality int 最佳质量(18~51,越小质量越好) (未配置则使用内部默认值25)
maxQuality int 最差质量(18~51, 越大质量越差) (未配置则使用内部默认值36)
  • 注意事项

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

CamAttribute

视频设备私有属性

成员变量 类型 说明
disabled int 取值0:不禁用此设备(默认值),1:禁用此设备;
quality1_cfg VideoCfg 参见定义VideoCfg,未配置时采用全局配置的VideoCfg
quality2_cfg VideoCfg 第二档视频配置,未配置代表关闭对应档位视频流;
  • 注意事项

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

RawFrame

视频帧图像

成员变量 类型 说明
camShowNo int 摄像头显示序号(0开始编号)
fmt VIDEO_FORMAT 图像格式,数值参考视频图像格式VIDEO_FORMAT
dat const char * 图像数据
datLength int 图像大小
frameWidth int 图像宽度
frameHeight int 图像高度
frameTime unsigned long long 图像的时间戳

UsrVideoInfo

用户视频信息

成员变量 类型 说明
videoDevPath NSString 设备路径
videoName NSString 设备名称

UsrVideoId

用户摄像头

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

ScreenShareImg

屏幕共享帧图像

成员变量 类型 说明
rgbDat void * 图像数据
datLength int 图像大小
rgbWidth int 图像宽度
rgbHeight int 图像高度

MixerCfg

混图器规格配置

成员变量 类型 说明
dstResolution CGSize 图像大小
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。

    • 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,此时元素大小由文本信息自动确定

OutputCfg

录制文件、直播信息输出信息

成员变量 类型 说明
type OUT_TYPE 类型,详见定义OUT_TYPE
fileName NSString 录像形成视频文件名
encryptType int 录像文件是否加密
isUploadOnRecording BOOL 是否边录边上传,默认是false
serverPathFileName NSString 文件上传后在服务器上的相对路径和文件名
liveUrl NSString 目标url
live BOOL 开启云屋直播
errRetryTimes int 失败时重试次数CRVSDK_EXPORT

OutputInfo

录制文件、直播信息通知

成员变量 类型 说明
state MIXER_OUTPUT_STATE 状态,详见定义MIXER_OUTPUT_STATE
duration long 录像文件时长,单位:毫秒;
fileSize long 录像文件大小;
errCode CRVIDEOSDK_ERR_DEF 错误码,详见定义CRVIDEOSDK_ERR_DEF
  • 注意事项

    • 输出对象已创建;
    • 输出目标信息更新; 可以从结构中取得duration, fileSize参数;
    • 输出对象已关闭; 可以从结构中取得duration, fileSize参数;
    • 输出对象异常;可以从结构中取得err参数;

MixerContent

混图器内容配置

成员变量 类型 说明
contents NSMutableArray<RecContentItem* > * 混图器内容

MixerOutput

混图器输出配置

成员变量 类型 说明
outputs NSMutableArray<OutputCfg* > * 混图器输出配置

RecordFileInfo

录制文件

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

成员方法说明

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

RecordFileShow

录制文件

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

MediaInfo

影音文件信息

成员变量 类型 说明
userID NSString 用户id
state MEDIA_STATE 播放状态,详见定义MEDIA_STATE
mediaName NSString 影音文件名

屏幕共享配置对象

成员变量 类型 说明
maxFPS int 帧率, 缺省为8 (当网络发不动时,帧率会自动下降)
maxBps int 最大码率,缺省为800kbps

MediaDataFrame

影音帧图像

成员变量 类型 说明
buf void * 图像数据
datLength int 图像大小
w int 图像宽度
h int 图像高度
fmt int 图像格式
ms int64_t pts

SubPage

白板

成员变量 类型 说明
termID short 终端ID
localID short 本地D

SubPageInfo

白板信息

成员变量 类型 说明
boardID SubPage 白板标识,详见定义SubPage
title NSString 白板的名字
width int
height int
pageCount int 页数
curPage int 当前页
pagePos1 int 扩展参数1
pagePos2 int 扩展参数2

BoardElement

白板图元


{ "elementID": "xx", "type":100, "left":0, "top":0 }

参数 类型 说明
elementID NSString 图元id
type int 图元的类型,值100以下为云屋保留值,100及以上为自定义值
left、top int 图元在页内的左上角位置
... NSString 可自由扩展

说明:

1.elementID必须调用createElementID获取, 即使是曾经调此接口创建的然后存入了磁盘文件,再次读入房间时,所有elementID也需要重新生重。

2.如果要和云屋产品互通,那就需要按云屋的定义取值,可以联系云屋获取相关文档

FileInfo

网盘文件

成员变量 类型 说明
ownerID short 文件所有者的ID
ownerName NSString 文件所有者的名称
name NSString 在服务器上的文件名
orgFileName NSString 用户的原始文件名
md5 NSString 压缩后的md5(如果不压缩,则原文件md5)
ctime NSString 上传时间,字符串,格式"yyyy-MM-dd hh:mm:ss"
size int 在服务器上的大小(单位B,类型ulong)
orgSize int 原始文件大小(单位B,类型ulong)
status int 文件状态

DiskSummary

网盘容量信息

成员变量 类型 说明
confDiskLimit int 网盘总容量(KB)
confDiskUsed int 网盘已用容量(KB)

QueueInfo

队列信息

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

QueueStatus

队列状态

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

QueuingInfo

排队信息

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

VideoSessionInfo

会话信息

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

UserInfo

队列用户

成员变量 类型 说明
queID int 队列ID
usrID NSString 用户ID
name NSString 用户昵称
queuingTime int 用户排队的时长(单位s)

HttpReqInfo

Http文件传输请求对象

成员变量 类型 说明
filePathName NSString 本地完整路径文件名
fileVersio NSString 文件版本(可以填版本号,也可以md5,也可以为空)
httpUrl NSString 目标URL
params NSString 特殊参数(如边录边传,云屋加密类型)
bUploadType BOOL 是否上传

FileTransInfo

Http传输信息对象

成员变量 类型 说明
fileSize int 文件大小
finishedSize int 已传输大小
state HTTP_TRANSFER_STATE 文件传输状态,详见HTTP_TRANSFER_STATE

NetDiskDocDir

文档列表

成员变量 类型 说明
name NSString 在网盘里的文件名
files <FileInfo > 查询目录下的所有文件
dirs <NetDiskDocDir > 查询目录下的所有目录

GetDocPageInfoRslt

获取文档页信息结果

成员变量 类型 说明
width int 文档的图像宽度
height int 文档的图像高度
files NSMutableArray<NSString* > * 查询目录下的所有文件