[TOC]

1. 在线引用排麦插件

1.1 组件引入

需使用特定场景连麦模式,可在线引用排麦插件
<script src="https://class.csslcloud.net/static/dist/js/classMode.js"></script>

1.2 排麦插件包含功能

功能 描述
多中连麦模式支持 自定义多种连麦场景(自由、举手、自动)

2. 排麦模式说明

2.1 举手连麦

  1. 学生可举手申请连麦,需老师确认才可连麦
  2. 老师可以邀请学生连麦,需学生同意才可连麦

举手连麦时序图

Image text

2.2 自由连麦

  1. 学生可自由连麦,无需老师确认

自由连麦时序图

Image text

2.3 自动连麦

  1. 学生进入房间后自动连麦

自动连麦时序图

Image text

2. 排麦事件

2.1 学生举手

举手由学生端发起。

应用模式:举手连麦,自由连麦,自动连麦。

rtc.handsUp(object);

object 参数说明:

参数名称 参数类型 说明 是否必须
success function 成功回调(含参数) 可选
fail function 失败回调(含参数) 可选

使用例子:

rtc.handsUp({
    success: function(str){
        console.log('举手成功', str);
    },
    fail: function(data){
        console.log('举手失败',data);
    }
});

2.2 取消排麦

取消排麦由学生端发起。

应用模式:举手连麦,自由连麦,自动连麦。

rtc.handsUpCancel(object);

object 参数说明:

参数名称 参数类型 说明 是否必须
uid string 取消排麦用户id 必选
success function 成功回调(含参数) 可选
fail function 失败回调(含参数) 可选

使用例子:

rtc.handsUpCancel({
    uid:"23eb6474924f4b28b97ef42cb59676bc",
    success: function(str){
        console.log('取消排麦成功', str);
    },
    fail: function(data){
        console.log('取消排麦失败',data);
    }
});

2.3 下麦操作

老师和学生都能发起下麦,被下麦角色是学生,该方法才能生效。

应用模式:举手连麦,自由连麦,自动连麦。

rtc.handsDown(object);

object 参数说明:

参数名称 参数类型 说明 是否必须
uid string 被下麦用户id 必选
teacher_id string 老师id 可选
success function 成功回调(含参数) 可选
fail function 失败回调(含参数) 可选

使用例子:

rtc.handsDown({
    uid:"23eb6474924f4b28b97ef42cb59676bc",
    teacher_id:"f10f7885ab564183ad7fe47664f46973",
    success: function(str){
        console.log('下麦成功', str);
    },
    fail: function(data){
        console.log('下麦失败',data);
    }
});

2.4 邀请上麦

老师端发起邀请,邀请学生上麦。(举手模式)

应用模式:举手连麦。

rtc.invite(object);

object 参数说明:

参数名称 参数类型 说明 是否必须
uid string 被邀请用户id 必选
success function 成功回调(含参数) 可选
fail function 失败回调(含参数) 可选

使用例子:

rtc.invite({
    uid:"23eb6474924f4b28b97ef42cb59676bc",
    success: function(str){
        console.log('邀请上麦成功', str);
    },
    fail: function(data){
        console.log('邀请上麦失败',data);
    }
});

2.5 同意上麦

老师端同意学生上麦请求。

应用模式:举手连麦

rtc.certain(object);

object 参数说明:

参数名称 参数类型 说明 是否必须
uid string 同意上麦用户id 必选
success function 成功回调(含参数) 可选
fail function 失败回调(含参数) 可选

使用例子:

rtc.certain({
    uid:"23eb6474924f4b28b97ef42cb59676bc",
    success: function(str){
        console.log('同意上麦成功', str);
    },
    fail: function(data){
        console.log('同意上麦失败',data);
    }
});

2.6 接受邀请

学生端接受老师的上麦邀请,同意上麦。

应用模式:举手连麦

rtc.inviteAccept(object);

object 参数说明:

参数名称 参数类型 说明 是否必须
success function 成功回调(含参数) 可选
fail function 失败回调(含参数) 可选

使用例子:

rtc.inviteAccept({
    success: function(str){
        console.log('接受邀请成功', str);
    },
    fail: function(data){
        console.log('接受邀请失败',data);
    }
});

2.7 上麦更新

上麦更新是在两种情况下执行

​ 1.推流成功之后将自己的麦序更新为3;系统会广播 speak_context 事件,其他用户监听该事件后更新对应的业务展示状态;

​ 2.不能创建本地流或者推流失败,更新自己的麦序为0。

可应用模式:举手连麦,自由连麦,自动连麦。

rtc.updateMcResult(object);

object 参数说明:

参数名称 参数类型 说明 是否必须
pid number 上麦结果更新status 必选
stid string streamid 可选
success function 成功回调(含参数) 可选
fail function 失败回调(含参数) 可选
object:包含以下属性
* pid(必选)上麦结果更新status 
    0 推流失败/取消推流 学生不能创建本地流或者推流失败,需将其麦序让出。
    1 推流成功 推流成功之后为更新自己上麦状态,通知其他人订阅,需调用。
* stid(可选)
    推流成功传streamid 
    推流失败可不传
* success(可选)successed 成功回调
object.success = function(str){
    // 上麦成功
}

* fail(可选)fail 失败回调
object.fail = function(data){
    // 上麦失败
    console.log(data);
}
状态
0 未推流
1 申请推流
2 尝试推流
3 推流成功

使用例子:

rtc.updateMcResult({
    pid:1,
    stid:"146797406875915040",
    success: function(str){
        console.log('邀请上麦成功', str);
    },
    fail: function(data){
        console.log('邀请上麦失败',data);
    }
});

2.8 视频轮播

老师端确定锁定视频是否轮播。

应用模式:自动连麦

rtc.speakerRotateControl(object);

object 参数说明:

参数名称 参数类型 说明 是否必须
u string 指定被锁定人id 必选
t boolean 是否锁定 必选
success function 成功回调(含参数) 可选
fail function 失败回调(含参数) 可选
object:包含以下属性
* u(必选)老师端用户id
* t(必选)
    true 锁定 
    false 解锁
* success(可选)successed 成功回调
object.success = function(str){
    // 锁定视频是否轮播操作成功
}

* fail(可选)fail 失败回调
object.fail = function(data){
    // 锁定视频是否轮播操作失败
    console.log(data);
}

使用例子:

rtc.speakerRotateControl({
    u:"f10f7885ab564183ad7fe47664f46973",
    t:true,
    success: function(str){
        console.log('锁定视频是否轮播操作成功', str);
    },
    fail: function(data){
        console.log('锁定视频是否轮播操作失败',data);
    }
});

2.9 踢出房间

从房间里踢出学员。

应用模式:举手连麦,自由连麦,自动连麦。

rtc.kickOut(userid, function);

object 参数说明:

参数名称 参数类型 说明 是否必须
userid string 指定被踢人id 必选
function function 成功回调(含参数) 可选

使用例子:

rtc.kickOut('xi9OJjmNf1YUVFkA', function (err) {
    console.log(err)
    // err 为 undefined 时表示踢出成功,否则err为踢出失败信息。
});

2.10 助教上麦更新麦序

助教推流成功后,调用更新麦序方法成功后,其他人可以订阅到助教的流

rtc.assistantUp(object);

object 参数说明:

参数名称 参数类型 说明 是否必须
streamId string 助教流id 必选
success function 成功回调(含参数) 可选
fail function 失败回调(含参数) 可选

使用例子:

rtc.assistantUp({
    streamId:"455353543353453453454353453",
    success: function(data){
        console.log('操作成功', data);
    },
    fail: function(data){
        console.log('操作失败',data);
    }
});

2.11 助教下麦接口

助教或者讲师角色可将助教麦序更新为0,助教收到下麦通知后,应停止推流

rtc.assistantDown(object);

object 参数说明:

参数名称 参数类型 说明 是否必须
userid string 助教的人员id 必选
downBy string 被其他人下麦的id(被讲师下麦,可填讲师id) 可选
success function 成功回调(含参数) 可选
fail function 失败回调(含参数) 可选

使用例子:

rtc.assistantDown({
    userid:"455353543353453453454353453",
    success: function(data){
        console.log('操作成功', data);
    },
    fail: function(data){
        console.log('操作失败',data);
    }
});

2.12 讲师下麦接口

助教或者讲师角色可将讲师麦序更新为0,讲师收到下麦通知后,应停止推流

rtc.teacherDown(object);

object 参数说明:

参数名称 参数类型 说明 是否必须
userid string 讲师的人员id 必选
downBy string 被其他人下麦的id(被助教下麦,可填助教id) 可选
success function 成功回调(含参数) 可选
fail function 失败回调(含参数) 可选

使用例子:

rtc.teacherDown({
    userid:"455353543353453453454353453",
    success: function(data){
        console.log('操作成功', data);
    },
    fail: function(data){
        console.log('操作失败',data);
    }
});

2.13 讲师或助教预上麦接口

助教或讲师角色可以被别人(非自己)调用预上麦接口通知上麦,此时,收到预上麦通知后,应主动推流后更新麦序

rtc.teacherOrAssistantUp(object);

object 参数说明:

参数名称 参数类型 说明 是否必须
userid string 讲师或助教的人员id 必选
success function 成功回调(含参数) 可选
fail function 失败回调(含参数) 可选

使用例子:

rtc.teacherOrAssistantUp({
    userid:"455353543353453453454353453",
    success: function(data){
        console.log('操作成功', data);
    },
    fail: function(data){
        console.log('操作失败',data);
    }
});

3. 排麦通知

3.1 监听有流可订阅事件

使用例子:

rtc.on('allow_sub', function(stream) {
    // 订阅流
    if(stream.isMixed()) {
        console.log('是混合流,不定阅');
    } else {
        rtc.trySubscribeStream({
            tryStream: stream,
            success: function(stream) {
                var streamId = stream.id(); // 获取流id                

                //将视频动态插入盒子中
                var li = document.createElement('li');
                li.setAttribute('id', streamId);
                $('body').appendChild(li);
                stream.show(streamId);
            },
            fail: function(err) {
                console.log(err, 'error');
            }
        });
    }
});

3.2 监听通知取消订阅事件

已订阅的流离开房间时,通知取消订阅的监听事件

使用例子:

rtc.on('unSub', function(stream) {    
   //停止订阅流
});

3.3 学生监听自己需要下麦事件

下麦成功后的监听事件

使用例子:

rtc.on('mcDown', function() {
    // 关闭本地流
    rtc.closeVideo({  //关闭本地流
        streamName: 'main',
        success: function() {
            console.log('main:关闭本地流成功');
        },
        fail: function(str) {
            console.log(str, 'error');
        }
    });
});

3.4 学生监听自己被允许上麦

自己被系统允许,需创建本地流

使用例子:

rtc.on('createLocalStream', function() {    
      // 创建本地流推流
});

3.5 监听自己被邀请事件

学生自己被邀请的监听事件

使用例子:

rtc.on('inviteUp', function(uid) {    
    console.log('被邀请的用户id为',uid)
});

3.6 监听到预上麦信号

在助教应用场景下,助教或讲师可能切换上麦,预上麦就是通知讲师或者助教被切换上麦了,需要推流

rtc.on('preLive' function(uid){
    console.log(uid);
});

3.7 举手连麦模式下,学生举手通知

说明: 此方法需老师端监听

rtc.on("user_hand",   function(id){
    console.log(id);
});
// id为举手用户用户的id

results matching ""

    No results matching ""