简介

本文档为了指导开发者使用云屋SDK接入文档,通过引用SDK文件的方式开发自己的 PC 网页以及 H5 来对接云屋直播平台,默认开发者了解前端开发同时拥有JavaScript基础。
目前支持的功能如下:

分类 功能 描述
聊天 观看端聊天 支持在直播时聊天和观看回放功能
问答 观看端问答 支持观看直播时提问和收取答案
视频 观看端视频 支持移动收看端及pc收看端直播视频和回放视频
点播 自由设置点播功能 支持用户上传视频设置为历史列表等

SDK 引入

1.依赖库的引入
云屋直播页面SDK 依赖于 JQuery 库,请在需要引入 JQuery 的页面插入以下代码进行引入:

<script src="http://www.cloudroom.com/api/jquery/1.11.2/jquery.min.js" type="text/javascript"><script>

2.引入SDK文件
在需要调用 SDK 的页面插入以下代码以引入 JS 文件:

<script src="http://www.cloudroom.com/api/crsdk.2.0.min.js" type="text/javascript"><script>

初始化并注入权限验证

1.初始化并注入权限验证
请使用以下方发和参数进行SDK 的初始化

var config = {
   LiveCode:' ', // 必传 string 会议地址 直播地址最后六位字符 如“afbse6”
   NickName:' ', // 必传 string 用户的昵称 由用户设置
   headerUrl:' ', // 必传 string 用户头像url 地址
   userCode: ' ' // 必传 string 用户识别码 用户id   传递方式:‘wx’ 加‘_’加微信id值 如:‘wx_123456’   ‘kdyh’加 ‘_’ 加口袋用户id值 如‘kdyh1234567’
   videoContent:' ', // 必传 string 创建的video的父元素的id值名称 如id值传"#contain"
   openId:' ', // 非必传 string 微信用户openid值
   };
   //初始化JDK
   CR_SDK.init(config); // 初始化用户信息

2.初始化回调

CR_SDK.on('cr_init_callback', function(res) {Console.log(res);})

主要字段及含义

字段 子字段 类型 描述
resCode / num 0 初始化成功 并回调
num 1 初始化失败 由webapi获取的视频流 重新登录
num 2 直播不存在 初始化回调失败
num 3 初始化成功,但昵称重复
num 4 超过最大并发数,联系管理员或主持人
msg / string 初始化信息 初始化返回的信息
data(初始化回调成功) termId num / 用户id值
myDetail obj / 用户详细信息
isBegan bool / 会议是否已开始
countdown num / 倒计时
pstnnum string / pstn接入号
pstnpwd string / pstnpwd - pstn接入密码
freeConf bool / 是否免费会议
isBroadcating bool / 是否直播
webViewerRights string / 直播权限
webviewerQues bool / 是否显示问答

3.用户信息及会议信息

用户信息      CR_SDK.getUserinfo()

主要字段及含义

字段 类型 描述
NickName string 用户昵称
detail object 用户详情
headerUrl string 用户头像url 地址
userid num 用户头像id
oemkey num 作者
nickname string 用户昵称
获取直播频道信息      CR_SDK.getRoominfo()

主要字段及含义

字段 类型 描述
live_video_url string 视频资源 url 地址
roomid string 会议 id 地址
video_type number 视频状态 0为结束 1 为开始
webviewerQues boolen 问答状态开关 0 为关闭问答 1为开启

详细功能说明

1.主要调用API

API 说明 返回内容
CR_SDK.getUserinfo() 获取当前用户信息 CR_SDK.userinfo用户信息
CR_SDK.getRoominfo() 获取当前直播信息 CR_SDK.roominfo直播信息
CR_SDK.getUserPersonalMsg() 获取点播信息方法 当页面需要展示点播功能时,需在初始化与初始化回调过程中获取该方法
CR_SDK.dbEventBind(index) 切换点播播放视频方法 需要传入点击的是第几个视频,传参index为num,初始为0
CR__GetLuckyDrawCfg() 获取直播抽奖信息方法 在登录方法中已经使用(该方法暂未公开)
CR_SDK.joinLuckyMembers(name,phoneNum) 抽奖报名方法 传入报名人的昵称及电话号码(该方法暂未公开)
cr_create_div 监听是否创建了 video 标签 resCode为 0 时表示创建了video 标签
cr_notify_live_type 监听当前视频状态 1 直播状态 2 预告状态 3回放状态 4录播状态 6直播结束 7会议结束 8直播流结束 9后台设置直播结束
CR_SDK.dianzan() 点赞事件请求 返回点赞信息
CR_SDK.getLiveLikeNum() 获取点赞人数请求 返回点赞人数信息cr_get_live_like_number_back
CR_SDK.getOnLineNum() 获取在线人数请求 返回在线人数cr_get_live_online_number
CR_SDK.sendChatMsg(chatinfo) 发送评论信息 返回所需的评论信息字符串
CR_SDK.sendQuest(questinfo) 发送问题信息 返回提问信息字符串
CR_SDK.getChats(count) 获取历史聊天数据 返回历史聊天数据 回调方法cr_record_history_chat_msg
cr_record_history_QandA_msg 获取历史问答信息 返回所有历史问答信息

2.响应事件API

API 说明
cr_init_callback 初始化回调:resCode: 0为初始化成功,1为初始化失败,2为直播不存在 3昵称重复但仍初始化成功 4为超过最大并发数
CR_SDK.getUserPersonalMsg() 获取点播列表,回调事件:cr_get_user_personal_msg
CR_SDK.sendChatMsg(chatinfo) 发送评论信息
CR_SDK.sendQuest(questinfo) 发送问题信息
CR_SDK.getChats(count) 获取历史聊天数据 回调事件:cr_record_history_chat_msg
cr_record_history_QandA_msg 获取历史问答信息
CR_SDK.getOnLineNum() 获取在线观看人数 回调事件:cr_get_live_online_number
CR_SDK.dianzan() 点赞事件,返回点赞信息
CR_SDK.getLiveLikeNum() 获取点赞人数事件 回调事件:cr_get_live_like_number_back
cr_user_leave_live 监听用户离开
cr_create_div 监听是否创建了 video 标签 resCode为 0 时表示创建了video 标签
cr_notify_live_type 1 直播状态 2 预告状态 3回放状态 4录播状态 6直播结束 7会议结束 8直播流结束 9后台设置直播结束
cr_handle_all_chat_permission 是否开启聊天,聊天权限变更通知
cr_handle_chat_permission 个人聊天权限变更
cr_clear_all_chat 清除所有聊天记录
cr_get_del_im_sn 删除某一条聊天信息
cr_send_chat_msg_call 发送信息回调 是否存在敏感词
cr_receive_chat_msg 接收聊天信息回调
cr_receive_quesion_msg 发送问题信息回调
cr_receive_answer_msg 监听接收问题信息回调
cr_receive_bpublic_status 监听问答信息公开状态回调
cr_delete_all_ques 删除所有问答信息
cr_update_ques_answer_detail 修改问题答案内容回调
cr_set_broad_cast_ques 监听问答开关状态回调
cr_get_lucky_drawcfg_msg 获取直播抽奖信息的回调方法(暂未公开)
cr_join_lucky_drawMembers_rslt 抽奖报名的结果回调方法(该方法暂未公开)
cr_get_lucky_draw_result 开奖结果通知

3.SDK主要错误码

错误码 说明
800 会议不存在或已结束
900 包含敏感词

4.主要代码示例

SDK准备就绪后,先执行初始化,初始化成功后,登录并回调,获取对应直播房间当前的状态,如直播状态、回放状态、录播状态时可调用相应的聊天问答等功能,直播结束状态的个性化设置
监听当前视频状态

CR_SDK.on('cr_notify_live_type', function(res){console.log(res) })

返回的字段

返回字段 字段类型 字段描述
resCode num 1 直播状态 2 预告状态 3回放状态 4录播状态 6直播结束 7会议结束 8直播流结束 9后台设置直播结束
msg string 状态描述语


获取点播相关方法及信息

获取点播信息请求

CR_SDK.getUserPersonalMsg();

获取点播信息回调方法

CR_SDK.on('cr_get_user_personal_msg', function(res){console.log(res) })

返回的字段

返回字段 字段类型 字段描述
resCode num 状态码,为0时表示获取成功
data obj 返回的点播列表,对象,包含字段:imgurl [string] 点播视频的图片;title [string] 点播视频的名称;
msg string 状态描述语

点击点播列表某一项时的点击事件(更换视频)

CR_SDK.dbEventBind(index)
方法传0时表示点击的第一个列表视频

直播、录播、回放状态下,自动创建 video 标签,预告状态自动移除,用户可在创建在创建好video 后对 video的个性化操作可在该方法中执行
监听是否创建了 视频 标签

CR_SDK.on('cr_create_div', function(res){console.log(res) })

返回的字段

返回字段 字段类型 字段描述
resCode num 0 创建了video 标签
data string 创建的video的html 详情
src string video 的 src 路径
msg string 状态描述语

获取在线人数方法

CR_SDK.getOnLineNum();

获取在线人数回调

CR_SDK.on('cr_get_live_online_number', function(res){console.log(res) })

返回的字段

返回字段 字段类型 字段描述
data obj data.liveInfo.onlineNum 为回调的在线人数数值
msg 返回信息 获取在线人数回调后的反馈信息(是否获取成功)

点赞方法

CR_SDK.dianzan()

判断点赞是否成功

返回字段 字段类型 字段描述
msg string 返回是否点赞成功的信息
type num 0 点赞成功 1 点赞失败
result string 为"true" 时点赞成功 为"" 时点赞失败

获取历史人数点赞回调

// 获取历史点赞点赞事件    CR_SDK.getLiveLikeNum();
// 获取历史点赞人数事件回调
CR_SDK.on('cr_get_live_like_number_back', function(res) {
console.log(res);
});

返回的字段

返回字段 字段类型 字段描述
data obj data.liveInfo.likeNum 为回调的历史点赞人数数值

获取历史评论数据

// 获取历史聊信息  CR_SDK.getChats(count)// count为传入的数据,一次调用多少条
回调事件 获取聊天数据后的数据回调
CR_SDK.on('cr_record_history_chat_msg', function(res) {
console.log(res);
});

返回的字段

返回字段 字段类型 字段描述
code num 信息状态 0 为请求数据成功
msg string 返回的信息
total num 评论数的总量
data array 返回的数据

data主要字段

返回字段 字段类型 字段描述
head string 用户头像url 地址
index number 第几个元素
ishost boolen 是否为主持人
msg string 评论的具体内容
sendTime string 发送聊天信息的时间
srcTermId number 发送人的 termId 值

是否开启聊天功能,聊天功能权限变更

CR_SDK.on('cr_handle_all_chat_permission', function(res) {
console.log(res);
});
返回字段 字段类型 字段描述
code num 信息状态 0 为请求数据成功
msg string 返回的信息
allow_chat number 用户权限的变更 0 为减少权限 1 为增加权限

个人权限变更 允许或屏蔽聊天

CR_SDK.on('cr_handle_chat_permission', function(res) {
console.log(res);
});
返回字段 字段类型 字段描述
code num 信息状态 0 为请求数据成功
msg string 返回的信息
userid 用户 id值 返回的信息
permission boolen 是否允许聊天 true为允许 false为拒绝

发送聊天信息回调

CR_SDK.on('cr_send_chat_msg_call', function(res) {
console.log(res);
});
返回字段 字段类型 字段描述
code num 信息状态 0 为请求数据成功
msg string 返回的信息
type number 是否包含铭感词 1 为包含 0 为不包含

接收聊天信息回调

CR_SDK.on('cr_receive_chat_msg', function(res) {
console.log(res);
});

主要字段

返回字段 字段类型 字段描述
code num 信息状态 0 为请求数据成功
msg string 返回的信息
data obj 返回数据

data相关字段

返回字段 字段类型 字段描述
head string 用户头像url 地址
index number 第几个元素
msg string 聊天发送的信息
ishost boolen 是否为主持人
sendTime string 发送聊天信息的时间
srcNickname string 发送人昵称
srcTermId string 发送人的 termId 值

获取聊天总数值

CR_SDK.on('cr_get_immsg_count_msg', function(res) {
console.log(res);
});
返回字段 字段类型 字段描述
code num 信息状态 0 为请求数据成功
msg string 返回的信息
data num 聊天总数值

清空聊天信息

CR_SDK.on('cr_clear_all_chat', function(res) {
console.log(res);
});

删除某一条聊天信息

CR_SDK.on('cr_get_del_im_sn', function(res) {
console.log(res);
});
返回字段 字段类型 字段描述
code num 信息状态 0 为请求数据成功
msg string 返回的信息
data num 删除的聊天信息的序号值index

获取历史问答数据回调

CR_SDK.on('cr_record_history_QandA_msg', function(res) {
console.log(res);
});

返回字段 字段类型 字段描述
code num 信息状态 0 为请求数据成功
msg string 返回的信息
data array 返回的数据

data主要字段

返回字段 字段类型 字段描述
quesID num 问答信息的id值
ask object asktime 提问时间 content 问题信息 nickname 提问人昵称 termID提问人的 termId 值 srcNickname发送人昵称
deal object publishTime 公开问题的时间 replyCon 回答的内容 replyTermId 回答人的ID值 replyTime 回答问题的时间state 问答公开状态 0 未答复 1 答复中 2已答复未公开 3已答复并公开 4问题已删除

监听 接收问题信息的回调

CR_SDK.on('cr_receive_quesion_msg', function(res) {
console.log(res);
});

返回字段 字段类型 字段描述
code num 信息状态 0 为请求数据成功
quesID number 问答的 id 值
msg string 返回的信息
data array 返回的数据

data主要字段

返回字段 字段类型 字段描述
id num 问答信息的id值
ask object asktime 提问时间 content 问题信息 nickname 提问人昵称 termID提问人的 termId 值 srcNickname发送人昵称
deal object publishTime 公开问题的时间 replyCon 回答的内容 replyTermId 回答人的ID值 replyTime 回答问题的时间state 问答公开状态 0 未答复 1 答复中 2已答复未公开 3已答复并公开 4问题已删除

监听问答公开状态的变更

CR_SDK.on('cr_receive_answer_msg', function(res) {
console.log(res);
});

返回字段 字段类型 字段描述
code num 信息状态 0 为请求数据成功
quesID number 问答的 id 值
msg string 返回的信息
data array 返回的数据

data主要字段

返回字段 字段类型 字段描述
id num 问答信息的id值
ask object asktime 提问时间 content 问题信息 nickname 提问人昵称 termID提问人的 termId 值 srcNickname发送人昵称
deal object publishTime 公开问题的时间 replyCon 回答的内容 replyTermId 回答人的ID值 replyTime 回答问题的时间state 问答公开状态 0 未答复 1 答复中 2已答复未公开 3已答复并公开 4问题已删除

修改问题答案内容监听

CR_SDK.on('cr_update_ques_answer_detail', function(res) {
console.log(res);
});

返回字段 字段类型 字段描述
code num 信息状态 0 为请求数据成功
quesID number 问答的 id 值
msg string 返回的信息
data array 返回的数据

data主要字段

返回字段 字段类型 字段描述
ask object asktime 提问时间 content 问题信息 nickname 提问人昵称 termID提问人的 termId 值 srcNickname发送人昵称
deal object publishTime 公开问题的时间 replyCon 回答的内容 replyTermId 回答人的ID值 replyTime 回答问题的时间state 问答公开状态 0 未答复 1 答复中 2已答复未公开 3已答复并公开 4问题已删除

直播问答功能修改通知(开启直播或关闭直播)

CR_SDK.on('cr_set_broad_cast_ques', function(res) {
console.log(res);
});

返回字段 字段类型 字段描述
code num 信息状态 0 为请求数据成功
type boolen 当前问答显示状态值 false 为不显示
msg string 返回的信息
data array 当关闭问答时 data 为空 “”当问答开关开 启时为 array

删除所有问题

CR_SDK.on('cr_delete_all_ques', function(res) {
console.log(res);
});

用户离开监听

CR_SDK.on('cr_user_leave_live', function(res) {
console.log(res);
});

返回字段 字段类型 字段描述
msg string 返回的信息
termibalId number 离开用户的 id值

获取直播抽奖信息的回调方法

CR_SDK.on('cr_get_lucky_drawcfg_msg', function(res) {
console.log(res);
});

返回字段 字段类型 字段描述
code number 状态码,0表示请求成功
codemsg string 状态信息
mes string 信息提示语
data obj 返回的抽奖信息

data主要字段

返回字段 字段类型 字段描述
memberType number 01/02/03 本地名单抽奖/观众名单抽奖/全部观众抽奖
cdTime number 设置开奖时间
isAutoDraw bool 是否自动开奖
prizes object 奖项

抽奖报名的结果回调方法(该方法暂未公开)

CR_SDK.on('cr_join_lucky_drawMembers_rslt', function(res) {
console.log(res);
});

返回字段 字段类型 字段描述
code number 状态码,0表示请求成功
codemsg string 状态信息
mes string 信息提示语
data obj 返回的抽奖信息

data主要字段

返回字段 字段类型 字段描述
name string 昵称
contact string 电话号码
memberType number 01/02/03 本地名单抽奖/观众名单抽奖/全部观众抽奖

开奖结果通知

CR_SDK.on('cr_get_lucky_draw_result', function(res) {
console.log(res);
});

返回字段 字段类型 字段描述
code number 状态码,0表示请求成功
mes string 信息提示语
data obj 返回的抽奖信息

data主要字段

返回字段 字段类型 字段描述
prize obj prize.prizeName - 奖项,prize.prizeCnt - 奖项数量
annouceTime number 开奖时间
res obj res.name -获奖昵称,res.contact -获奖电话号码,res.memberType -开奖时间

主要demo示例

http://www.cloudroom.com/livedemo/index.html
http://www.cloudroom.com/livedemo/pcindex.html