gensee

立即使用

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。

概述

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及更高版本