[TOC]

1. 在线引用排麦插件

1.1 组件引入

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

1. 2 排麦插件包含功能

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

2. 排麦模式

2.1 举手连麦

2.1.1 学生可举手申请连麦,需老师确认才可连麦

2.1.2 老师可以邀请学生连麦,需学生同意才可连麦

2.2 自由连麦

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

2.3 自动连麦

2.3.1 学生进入房间后自动连麦

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.推流成功之后为更新自己上麦状态,通知其他人订阅,需调用。

​ 2.学生不能创建本地流或者推流失败,需将其麦序让出。

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

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);
}

使用例子:

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.outRoom(object);

object 参数说明:

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

使用例子:

rtc.outRoom({
    u:"f10f7885ab564183ad7fe47664f46973",
    success: function(str){
        console.log('踢出操作成功', str);
    },
    fail: function(data){
        console.log('踢出操作失败',data);
    }
});

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) {
    // 订阅流
    console.log('stream_added', stream);
    if(stream instanceof Woogeen.RemoteMixedStream) {
        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

更新日志

更新日期 功能
2018/8/7 新增举手模式学生举手通知讲师
2018/11/20 新增讲师、助教上下麦操作

results matching ""

    No results matching ""