[TOC]
1. 排麦模式
1.1 举手连麦
1.1.1 学生可举手申请连麦,需老师确认才可连麦
1.1.2 老师可以邀请学生连麦,需学生同意才可连麦
1.1.3 举手连麦流程图
1.2 自由连麦
1.2.1 学生可自由连麦,无需老师确认
1.3 自动连麦
1.3.1 学生进入房间后自动连麦
1.3.2 举手连麦和自由连麦流程图
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",
t:true,
success: function(str){
console.log('踢出操作成功', str);
},
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)
});