gensee
playGS close changeVisible sendMsg fullscreen cancelFullscreen setRect seek switchDV setRenderMode inviteAck rollCallAck handUp voteSubmit question getCurIdc setIdcId
论坛示例
为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。
概述
gensee模块封装了展视互动平台的直播和点播SDK,使用此模块可实现在线课堂的直播和点播功能;支持站点类型webcast和training。
使用展视互动基本流程说明: 1.在展视互动网站( http://www.gensee.com/ )申请账号试用。
playGS
打开一个直播或点播
playGS({params},function(ret,err))
params
uid
- 类型:数值型(0-100000000000)
- 描述:自定义的uid。
domain
- 类型:字符串
- 描述:从展视互动申请到的域名。
account
- 类型:字符串
- 描述:从展视互动申请到的账号。
accountPwd
- 类型:字符串
- 描述:从展视互动申请到的账号密码。
room
- 类型:数值型
- 描述:直播或者点播的房间号。
joinPwd
- 类型:字符串
描述:用户加入房间需要的密码。
drect: {x:0,y:0,w:300,h:200},//文档的大小位置
vrect: {x:0,y:200,w:100,h:100},//摄像头的大小位置
nickName
- 类型:字符串
- 描述:昵称。
fixedOn
- 类型:字符串类型
- 描述:(可选项)模块视图添加到指定 frame 的名字(只指 frame,传 window 无效)
- 默认:模块依附于当前 window
switchFlag
- 类型:布尔型
- 描述:是否可以切换摄像头和文档的显示位置,true可以切换,false不可以。
- 默认:false。
isVod
- 类型:布尔值
- 描述:设置当前打开的是直播还是点播,true为点播,false为直播。
- 默认值:false。
isTraining
- 类型:布尔值
- 描述:true表示站点类型为TRAINING,false表示站点类型为WEBCAST。
- 默认值:false。
vrect
- 类型:JSON 对象
- 描述:(可选项)摄像头区域的位置及尺寸
- 内部字段:
- {
- x: 0, //(可选项)数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0
- y: 0, //(可选项)数字类型;模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
- w: 320, //(可选项)数字类型;模块的宽度;默认:所属的 Window 或 Frame 的宽度
- h: 300 //(可选项)数字类型;模块的高度;默认:w的3/4 }
drect
- 类型:JSON 对象
- 描述:(可选项)文档区域的位置及尺寸
- 内部字段:
- {
- x: 0, //(可选项)数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0
- y: 0, //(可选项)数字类型;模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
- w: 320, //(可选项)数字类型;模块的宽度;默认:所属的 Window 或 Frame 的宽度
- h: 300 //(可选项)数字类型;模块的高度;默认:w的3/4 }
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
cmd:"",
/*
cmd类型如下:
onJoin 加入成功;
onRosterTotal 返回观看人数;
didUserJoin 用户加入;
didUserLeave 用户离开;
screenStatus 老师屏幕分享和摄像头切换时会调用;
onLottery 抽象回调;
onRollcall 点名回调;onVotePublish 投票(答题卡)发布通知;
onVotePublishResult 投票(答题卡)结果发布通知;
onVotePostUrl 第三方投票回调;
onQa 问答消息回调
onQaMute 问答权限通知回调
onIdcList 加入成功后回调所有可用线路
*/
sendMsgStatus:1,//1 信息发送成功;0 信息发送失败
type:'public',//仅当type==1&&sendMsgStatus==1有聊天信息回调
nickName:'',//仅当type==1&&sendMsgStatus==1有值,发言者的昵称
chatId,'',//仅当type==1&&sendMsgStatus==1有值,发言id
senderId,//仅当type==1&&sendMsgStatus==1有值,发言者id
role,//仅当type==1&&sendMsgStatus==1有值,发言者角色
msg,//仅当cmd=onRosterTotal有值,为观看人数
}
示例代码
var gensee=api.require('gensee');
gensee.playGS({
uid: 0, //用户自定义的id,可根据自家数据库用户的id给定此值
domain: "xx.gensee.com",//从展视互动申请到的域名
account: "xx@xx.com",//从展视互动申请到的账号
accountPwd: "pwd123456",//账号密码
room: "90000000",//房间号
joinPwd: "123456",//房间密码
nickName: '',昵称//
fixedOn: api.frameName,//当前frame的名字
switchFlag:true,//文档和摄像头互换,true为可以,false 为不可以
isVod:true,//true当前是点播;false当前是直播;
drect: {x:0,y:0,w:300,h:200},//文档的大小位置
vrect: {x:0,y:200,w:100,h:100},//摄像头的大小位置
},function(ret,err){
alert(JSON.stringify(ret));
})
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
close
关闭直播或者点播
close()
示例代码
var gensee=api.require('gensee');
gensee.close()
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
changeVisible
设置视频区域和文档区域的显示与隐藏
params
type
- 类型:字符串
- 描述:要隐藏的区域,doc为文档区域,video为视频区域。
isShow
- 类型:数值类型
- 描述:显示或者隐藏,0为隐藏,1为显示。
changeVisible({params},function(ret,err))
示例代码
var gensee=api.require('gensee');
gensee.changeVisible({
type: 'doc',
isShow: 1
})
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
sendMsg
发送聊天消息。
sendMsg({params},function(ret,err))
params
content
- 类型:字符串
- 描述:聊天消息纯文本。
richtext
- 类型:数值类型
- 描述:聊天消息富文本。
示例代码
var gensee=api.require('gensee');
gensee.sendMsg({
content:'test',
richtext:'<span style="color:red">test</span>'
},function(ret,err){
alert(JSON.stringify(ret));
})
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
fullscreen
文档区域全屏显示
fullscreen()
示例代码
var gensee=api.require('gensee');
gensee.fullscreen()
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
cancelFullscreen
文档区域取消全屏
cancelFullscreen()
示例代码
var gensee=api.require('gensee');
gensee.cancelFullscreen()
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setRect
设置文档或者摄像头区域的位置及大小
setRect({params})
params
type
- 类型:字符串
- 描述:要设置的区域,video为摄像头区域,doc文档区域。
rect
- 类型:JSON 对象
- 描述:(可选项)文档或摄像头区域的位置及尺寸
- 内部字段:
- {
- x: 0, //(可选项)数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0
- y: 0, //(可选项)数字类型;模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
- w: 320, //(可选项)数字类型;模块的宽度;默认:所属的 Window 或 Frame 的宽度
- h: 300 //(可选项)数字类型;模块的高度;默认:w的3/4 }
示例代码
var gensee=api.require('gensee');
gensee.setRect({
type: 'video',//video摄像头区域,doc文档区域
rect: {x:0,y:0,w:300,h:200}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
seek
点播播放的位置,isVod=true的条件下有效。
seek({params})
params
pos
- 类型:int
- 描述:点播播放的位置,单位为毫秒。
示例代码
var gensee=api.require('gensee');
gensee.seek({
pos:10*1000,//仅当playGS()时isVod==true才有效,因为只有是点播的时候才知道视频的时长,才能查找
})
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
switchDV
文档和摄像头区域互换位置大小,仅当playGS()中switchFlag==true时有效
switchDV()
示例代码
var gensee=api.require('gensee');
gensee.switchDV()
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setRenderMode
设置视频的显示方式,可设置平铺或者自适应
setRenderMode({param})
params
renderMode
- 类型:数值类型
- 描述:视频显示方式:0为平铺,1为自适应。
示例代码
var gensee=api.require('gensee');
gensee.setRenderMode({renderMode:1})
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
inviteAck
直播间邀请回应
inviteAck({param})
params
type
- 类型:数值类型
- 描述:1音频,2视频,3视频和音频。
isAccept
- 类型:布尔型
- 描述:直播间邀请回应,isAccept true 接受/false 拒绝。
示例代码
var gensee=api.require('gensee');
gensee.inviteAck({type:1,isAccept:true})
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
rollCallAck
点名应答。
rollCallAck({param})
params
isAccept
- 类型:布尔型
- 描述:点名应答,当点名发起onRollcall(timeout)响应后,调用本接口进行应答。isAccept true 签到/false 未签到。若在timeout时间内进行签到isAccept 传入true,一旦超出timeout传入false。
示例代码
var gensee=api.require('gensee');
gensee.rollCallAck({isAccept:true})
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
handUp
举手或放手。
handUp({param})
params
isHand
- 类型:布尔型
- 描述:举手或放手,isHand true 举手/false 放手。这个接口调用没有响应,请举手后进行倒计时,时间根据需要定义timeout,一般60秒,举手开始timeout秒内可以放手,超过timeout秒后自动放手。可以参考demo或web端的实现。
示例代码
var gensee=api.require('gensee');
gensee.handUp({isAccept:true})
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
voteSubmit
参与投票/答题卡(答题)后提交
voteSubmit({params},function(ret,err))
params
questions
- 类型:JSON 数组对象
- 描述:(可选项)摄像头区域的位置及尺寸
- 内部字段:
[
{
"ID": "2c3b5e3e-f36b-419e-93b4-50abc01fbd72", //题目id
"content": "2",
"essayAnswer": "",
"questionType": "single", //题目类型,单选题
"options": [
{
"ID": "533971844", //选项id
"content": "选项1", //选项内容
"isCorrectItem": false, //是否是正确答案
"isSelected": false, //用户是否选择了这个
"totalSumOfUsers": 0 //总共有多少用户选了这个答案
},
{
"ID": "533971845",
"content": "选项2",
"isCorrectItem": true,
"isSelected": false,
"totalSumOfUsers": 0
}
],
"totalSumOfUsers": 0,
"score": 0
},
{
"ID": "473ef434-9595-4c4b-b1fb-d0e359df3b34",
"content": "222",
"essayAnswer": "",
"questionType": "multi", //题目类型,多选题
"options": [
{
"ID": "533979501",
"content": "1",
"isCorrectItem": false,
"isSelected": false,
"totalSumOfUsers": 0
},
{
"ID": "533979502",
"content": "2",
"isCorrectItem": false,
"isSelected": false,
"totalSumOfUsers": 0
},
{
"ID": "533979503",
"content": "3",
"isCorrectItem": true,
"isSelected": false,
"totalSumOfUsers": 0
},
{
"ID": "533979504",
"content": "4",
"isCorrectItem": false,
"isSelected": false,
"totalSumOfUsers": 0
}
],
"totalSumOfUsers": 0,
"score": 0
}
]
示例代码
var gensee=api.require('gensee');
gensee.voteSubmit({questions: [
{
"ID": "2c3b5e3e-f36b-419e-93b4-50abc01fbd72", 题目id
"content": "2",
"essayAnswer": "",
"questionType": "single", //题目类型,单选题
"options": [
{
"ID": "533971844", //选项id
"content": "选项1", //选项内容
"isCorrectItem": false, //是否是正确答案
"isSelected": false, //用户是否选择了这个
"totalSumOfUsers": 0 //总共有多少用户选了这个答案
},
{
"ID": "533971845",
"content": "选项2",
"isCorrectItem": true,
"isSelected": false,
"totalSumOfUsers": 0
}
],
"totalSumOfUsers": 0,
"score": 0
},
{
"ID": "473ef434-9595-4c4b-b1fb-d0e359df3b34",
"content": "222",
"essayAnswer": "",
"questionType": "multi", //题目类型,多选题
"options": [
{
"ID": "533979501",
"content": "1",
"isCorrectItem": false,
"isSelected": false,
"totalSumOfUsers": 0
},
{
"ID": "533979502",
"content": "2",
"isCorrectItem": false,
"isSelected": false,
"totalSumOfUsers": 0
},
{
"ID": "533979503",
"content": "3",
"isCorrectItem": true,
"isSelected": false,
"totalSumOfUsers": 0
},
{
"ID": "533979504",
"content": "4",
"isCorrectItem": false,
"isSelected": false,
"totalSumOfUsers": 0
}
],
"totalSumOfUsers": 0,
"score": 0
}
]},function(ret,err){
alert(JSON.stringify(ret));
})
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
question
提问并发送。
question({param})
params
question
- 类型:字符串
- 描述:提问并发送,使用uuid作为问题的id使用。question为问题内容。提问后不会回传本条问题,直到发布的时候会全体通知一次,有回复时候全体通知一次。都通过onQa通知。
示例代码
var gensee=api.require('gensee');
gensee.question({question:"老师您好,请问中考考几门?"})
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getCurIdc
获取当前使用的线路,点播条件下无效。
getCurIdc()
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
cmd:"getCurIdc",
idcId:'line1'//线路id
}
示例代码
var gensee=api.require('gensee');
gensee.getCurIdc(function(ret,err){
alert(JSON.stringify(ret));
})
可用性
Android系统
可提供的1.0.0及更高版本
setIdcId
切换线路,点播条件下无效。
setIdcId({param})
params
idcId
- 类型:字符串
- 描述:根据onIdcList响应回来的PingEntity选择其中一个,取其中的idcid,调用该函数进行切换。
示例代码
var gensee=api.require('gensee');
gensee.setIdcId({idcId:"line1"})
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本