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

  • 类型:字符串
  • 描述:用户加入房间需要的密码。

    1. drect: {x:0,y:0,w:300,h:200},//文档的大小位置
    2. 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对象
  • 内部字段:
  1. {
  2. cmd:"",
  3. /*
  4. cmd类型如下:
  5. onJoin 加入成功;
  6. onRosterTotal 返回观看人数;
  7. didUserJoin 用户加入;
  8. didUserLeave 用户离开;
  9. screenStatus 老师屏幕分享和摄像头切换时会调用;
  10. onLottery 抽象回调;
  11. onRollcall 点名回调;onVotePublish 投票(答题卡)发布通知;
  12. onVotePublishResult 投票(答题卡)结果发布通知;
  13. onVotePostUrl 第三方投票回调;
  14. onQa 问答消息回调
  15. onQaMute 问答权限通知回调
  16. onIdcList 加入成功后回调所有可用线路
  17. */
  18. sendMsgStatus:1,//1 信息发送成功;0 信息发送失败
  19. type:'public',//仅当type==1&&sendMsgStatus==1有聊天信息回调
  20. nickName:'',//仅当type==1&&sendMsgStatus==1有值,发言者的昵称
  21. chatId,'',//仅当type==1&&sendMsgStatus==1有值,发言id
  22. senderId,//仅当type==1&&sendMsgStatus==1有值,发言者id
  23. role,//仅当type==1&&sendMsgStatus==1有值,发言者角色
  24. msg,//仅当cmd=onRosterTotal有值,为观看人数
  25. }

示例代码

  1. var gensee=api.require('gensee');
  2. gensee.playGS({
  3. uid: 0, //用户自定义的id,可根据自家数据库用户的id给定此值
  4. domain: "xx.gensee.com",//从展视互动申请到的域名
  5. account: "xx@xx.com",//从展视互动申请到的账号
  6. accountPwd: "pwd123456",//账号密码
  7. room: "90000000",//房间号
  8. joinPwd: "123456",//房间密码
  9. nickName: '',昵称//
  10. fixedOn: api.frameName,//当前frame的名字
  11. switchFlag:true,//文档和摄像头互换,true为可以,false 为不可以
  12. isVod:true,//true当前是点播;false当前是直播;
  13. drect: {x:0,y:0,w:300,h:200},//文档的大小位置
  14. vrect: {x:0,y:200,w:100,h:100},//摄像头的大小位置
  15. },function(ret,err){
  16. alert(JSON.stringify(ret));
  17. })

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

close

关闭直播或者点播

close()

示例代码

  1. var gensee=api.require('gensee');
  2. gensee.close()

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

changeVisible

设置视频区域和文档区域的显示与隐藏

params

type

  • 类型:字符串
  • 描述:要隐藏的区域,doc为文档区域,video为视频区域。

isShow

  • 类型:数值类型
  • 描述:显示或者隐藏,0为隐藏,1为显示。

changeVisible({params},function(ret,err))

示例代码

  1. var gensee=api.require('gensee');
  2. gensee.changeVisible({
  3. type: 'doc',
  4. isShow: 1
  5. })

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

sendMsg

发送聊天消息。

sendMsg({params},function(ret,err))

params

content

  • 类型:字符串
  • 描述:聊天消息纯文本。

richtext

  • 类型:数值类型
  • 描述:聊天消息富文本。

示例代码

  1. var gensee=api.require('gensee');
  2. gensee.sendMsg({
  3. content:'test',
  4. richtext:'<span style="color:red">test</span>'
  5. },function(ret,err){
  6. alert(JSON.stringify(ret));
  7. })

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

fullscreen

文档区域全屏显示

fullscreen()

示例代码

  1. var gensee=api.require('gensee');
  2. gensee.fullscreen()

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

cancelFullscreen

文档区域取消全屏

cancelFullscreen()

示例代码

  1. var gensee=api.require('gensee');
  2. 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 }

示例代码

  1. var gensee=api.require('gensee');
  2. gensee.setRect({
  3. type: 'video',//video摄像头区域,doc文档区域
  4. rect: {x:0,y:0,w:300,h:200}
  5. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

seek

点播播放的位置,isVod=true的条件下有效。

seek({params})

params

pos

  • 类型:int
  • 描述:点播播放的位置,单位为毫秒。

示例代码

  1. var gensee=api.require('gensee');
  2. gensee.seek({
  3. pos:10*1000,//仅当playGS()时isVod==true才有效,因为只有是点播的时候才知道视频的时长,才能查找
  4. })

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

switchDV

文档和摄像头区域互换位置大小,仅当playGS()中switchFlag==true时有效

switchDV()

示例代码

  1. var gensee=api.require('gensee');
  2. gensee.switchDV()

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setRenderMode

设置视频的显示方式,可设置平铺或者自适应

setRenderMode({param})

params

renderMode

  • 类型:数值类型
  • 描述:视频显示方式:0为平铺,1为自适应。

示例代码

  1. var gensee=api.require('gensee');
  2. gensee.setRenderMode({renderMode:1})

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

inviteAck

直播间邀请回应

inviteAck({param})

params

type

  • 类型:数值类型
  • 描述:1音频,2视频,3视频和音频。

isAccept

  • 类型:布尔型
  • 描述:直播间邀请回应,isAccept true 接受/false 拒绝。

示例代码

  1. var gensee=api.require('gensee');
  2. 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。

示例代码

  1. var gensee=api.require('gensee');
  2. gensee.rollCallAck({isAccept:true})

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

handUp

举手或放手。

handUp({param})

params

isHand

  • 类型:布尔型
  • 描述:举手或放手,isHand true 举手/false 放手。这个接口调用没有响应,请举手后进行倒计时,时间根据需要定义timeout,一般60秒,举手开始timeout秒内可以放手,超过timeout秒后自动放手。可以参考demo或web端的实现。

示例代码

  1. var gensee=api.require('gensee');
  2. gensee.handUp({isAccept:true})

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

voteSubmit

参与投票/答题卡(答题)后提交

voteSubmit({params},function(ret,err))

params

questions

  • 类型:JSON 数组对象
  • 描述:(可选项)摄像头区域的位置及尺寸
  • 内部字段:
  • [

    1. {
    2. "ID": "2c3b5e3e-f36b-419e-93b4-50abc01fbd72", //题目id
    3. "content": "2",
    4. "essayAnswer": "",
    5. "questionType": "single", //题目类型,单选题
    6. "options": [
    7. {
    8. "ID": "533971844", //选项id
    9. "content": "选项1", //选项内容
    10. "isCorrectItem": false, //是否是正确答案
    11. "isSelected": false, //用户是否选择了这个
    12. "totalSumOfUsers": 0 //总共有多少用户选了这个答案
    13. },
    14. {
    15. "ID": "533971845",
    16. "content": "选项2",
    17. "isCorrectItem": true,
    18. "isSelected": false,
    19. "totalSumOfUsers": 0
    20. }
    21. ],
    22. "totalSumOfUsers": 0,
    23. "score": 0
    24. },
    25. {
    26. "ID": "473ef434-9595-4c4b-b1fb-d0e359df3b34",
    27. "content": "222",
    28. "essayAnswer": "",
    29. "questionType": "multi", //题目类型,多选题
    30. "options": [
    31. {
    32. "ID": "533979501",
    33. "content": "1",
    34. "isCorrectItem": false,
    35. "isSelected": false,
    36. "totalSumOfUsers": 0
    37. },
    38. {
    39. "ID": "533979502",
    40. "content": "2",
    41. "isCorrectItem": false,
    42. "isSelected": false,
    43. "totalSumOfUsers": 0
    44. },
    45. {
    46. "ID": "533979503",
    47. "content": "3",
    48. "isCorrectItem": true,
    49. "isSelected": false,
    50. "totalSumOfUsers": 0
    51. },
    52. {
    53. "ID": "533979504",
    54. "content": "4",
    55. "isCorrectItem": false,
    56. "isSelected": false,
    57. "totalSumOfUsers": 0
    58. }
    59. ],
    60. "totalSumOfUsers": 0,
    61. "score": 0
    62. }

    ]

示例代码

  1. var gensee=api.require('gensee');
  2. gensee.voteSubmit({questions: [
  3. {
  4. "ID": "2c3b5e3e-f36b-419e-93b4-50abc01fbd72", 题目id
  5. "content": "2",
  6. "essayAnswer": "",
  7. "questionType": "single", //题目类型,单选题
  8. "options": [
  9. {
  10. "ID": "533971844", //选项id
  11. "content": "选项1", //选项内容
  12. "isCorrectItem": false, //是否是正确答案
  13. "isSelected": false, //用户是否选择了这个
  14. "totalSumOfUsers": 0 //总共有多少用户选了这个答案
  15. },
  16. {
  17. "ID": "533971845",
  18. "content": "选项2",
  19. "isCorrectItem": true,
  20. "isSelected": false,
  21. "totalSumOfUsers": 0
  22. }
  23. ],
  24. "totalSumOfUsers": 0,
  25. "score": 0
  26. },
  27. {
  28. "ID": "473ef434-9595-4c4b-b1fb-d0e359df3b34",
  29. "content": "222",
  30. "essayAnswer": "",
  31. "questionType": "multi", //题目类型,多选题
  32. "options": [
  33. {
  34. "ID": "533979501",
  35. "content": "1",
  36. "isCorrectItem": false,
  37. "isSelected": false,
  38. "totalSumOfUsers": 0
  39. },
  40. {
  41. "ID": "533979502",
  42. "content": "2",
  43. "isCorrectItem": false,
  44. "isSelected": false,
  45. "totalSumOfUsers": 0
  46. },
  47. {
  48. "ID": "533979503",
  49. "content": "3",
  50. "isCorrectItem": true,
  51. "isSelected": false,
  52. "totalSumOfUsers": 0
  53. },
  54. {
  55. "ID": "533979504",
  56. "content": "4",
  57. "isCorrectItem": false,
  58. "isSelected": false,
  59. "totalSumOfUsers": 0
  60. }
  61. ],
  62. "totalSumOfUsers": 0,
  63. "score": 0
  64. }
  65. ]},function(ret,err){
  66. alert(JSON.stringify(ret));
  67. })

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

question

提问并发送。

question({param})

params

question

  • 类型:字符串
  • 描述:提问并发送,使用uuid作为问题的id使用。question为问题内容。提问后不会回传本条问题,直到发布的时候会全体通知一次,有回复时候全体通知一次。都通过onQa通知。

示例代码

  1. var gensee=api.require('gensee');
  2. gensee.question({question:"老师您好,请问中考考几门?"})

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getCurIdc

获取当前使用的线路,点播条件下无效。

getCurIdc()

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. cmd:"getCurIdc",
  3. idcId:'line1'//线路id
  4. }

示例代码

  1. var gensee=api.require('gensee');
  2. gensee.getCurIdc(function(ret,err){
  3. alert(JSON.stringify(ret));
  4. })

可用性

Android系统

可提供的1.0.0及更高版本

setIdcId

切换线路,点播条件下无效。

setIdcId({param})

params

idcId

  • 类型:字符串
  • 描述:根据onIdcList响应回来的PingEntity选择其中一个,取其中的idcid,调用该函数进行切换。

示例代码

  1. var gensee=api.require('gensee');
  2. gensee.setIdcId({idcId:"line1"})

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本