[TOC]
0. 排麦组件
排麦组件的核心类是CCBarLeyManager,获取核心类的实例:CCBarLeyManager mBarLeyManager = CCBarLeyManager.getInstance();
1. 排麦模式
1.1 举手连麦
1.1.1 学生可举手申请连麦,需老师确认才可连麦
1.1.2 老师可以邀请学生连麦,需学生同意才可连麦
1.2 自由连麦
1.2.1 学生可自由连麦,无需老师确认
1.3 自动连麦
1.3.1 学生进入房间后自动连麦
2. 排麦事件
2.0 请求排麦/举手
点击自由连麦、举手,以及自动连麦都必须要调用该接口
应用模式:举手连麦,自由连麦,自动连麦。
public void requestLianMai(final CCBarLeyCallBack<Void> callBack) {
object 参数说明:
参数名称 | 参数类型 | 说明 | 是否必须 |
---|---|---|---|
onSuccess | CCBarLeyCallBack | 成功回调 | 可选 |
onFailure | CCBarLeyCallBack | 失败回调 | 可选 |
2.1 学生举手
举手状态由互动者端发起,通知老师端,老师端可以同意或者不同意。
应用模式:举手连麦,自由连麦,自动连麦。
public void handup(boolean flag, final CCBarLeyCallBack<Void> callBack) {
object 参数说明:
参数名称 | 参数类型 | 说明 | 是否必须 |
---|---|---|---|
flag | boolean | 布尔类型true:举手;false:取消举手 | 必选 |
onSuccess | CCBarLeyCallBack | 成功回调 | 可选 |
onFailure | CCBarLeyCallBack | 失败回调 | 可选 |
2.2 取消排麦
取消排麦由学生端发起。
应用模式:举手连麦,自由连麦,自动连麦。
public void cancleLianMai(final CCBarLeyCallBack<Void> callBack) {
object 参数说明:
参数名称 | 参数类型 | 说明 | 是否必须 |
---|---|---|---|
onSuccess | CCBarLeyCallBack | 成功回调 | 可选 |
onFailure | CCBarLeyCallBack | 失败回调 | 可选 |
2.3 取消邀请
取消邀请由老师端发起
应用模式:举手连麦,自由连麦,自动连麦。
public void cancleInviteUserLianMai(String userId, CCBarLeyCallBack<Void> callBack) {
object 参数说明:
参数名称 | 参数类型 | 说明 | 是否必须 |
---|---|---|---|
userId | string | 被被取消邀请的用户id | 必选 |
onSuccess | CCBarLeyCallBack | 成功回调 | 可选 |
onFailure | CCBarLeyCallBack | 失败回调 | 可选 |
2.4 拒绝老师连麦邀请
拒绝老师连麦邀请由学生端发起
应用模式:举手连麦,自由连麦,自动连麦。
public void refuseTeacherInvite(CCBarLeyCallBack<Void> callBack) {
object 参数说明:
参数名称 | 参数类型 | 说明 | 是否必须 |
---|---|---|---|
onSuccess | CCBarLeyCallBack | 成功回调(含参数) | 可选 |
onFailure | CCBarLeyCallBack | 失败回调(含参数) | 可选 |
2.5 踢人下麦
老师端发起踢人下麦
应用模式:举手连麦,自由连麦,自动连麦。
public void kickUserFromLianmai(@NonNull String userId, CCBarLeyCallBack<Void> callBack) {
object 参数说明:
参数名称 | 参数类型 | 说明 | 是否必须 |
---|---|---|---|
userId | string | 被踢下麦用户id | 必选 |
onSuccess | CCBarLeyCallBack | 成功回调 | 可选 |
onFailure | CCBarLeyCallBack | 失败回调 | 可选 |
2.6 主动下麦
互动者端发起主动下麦。
应用模式:举手连麦,自由连麦。
public void stopLianMai(CCBarLeyCallBack<Void> callBack) {
object 参数说明:
参数名称 | 参数类型 | 说明 | 是否必须 |
---|---|---|---|
onSuccess | CCBarLeyCallBack | 成功回调(含参数) | 可选 |
onFailure | CCBarLeyCallBack | 失败回调(含参数) | 可选 |
2.7 同意举手
老师端同意学生上麦请求。
应用模式:举手连麦
public void certainHandup(String userId, final CCBarLeyCallBack<Void> callBack) {
object 参数说明:
参数名称 | 参数类型 | 说明 | 是否必须 |
---|---|---|---|
userId | string | 同意上麦用户id | 必选 |
onSuccess | CCBarLeyCallBack | 成功回调(含参数) | 可选 |
onFailure | CCBarLeyCallBack | 失败回调(含参数) | 可选 |
2.8 接受老师邀请
学生端接受老师的上麦邀请,同意上麦。
应用模式:举手连麦
public void acceptTeacherInvite(final CCBarLeyCallBack<Void> callBack) {
object 参数说明:
参数名称 | 参数类型 | 说明 | 是否必须 |
---|---|---|---|
onSuccess | CCBarLeyCallBack | 成功回调(含参数) | 可选 |
onFailure | CCBarLeyCallBack | 失败回调(含参数) | 可选 |
2.9 邀请学生上麦
老师端发送邀请,接收端是互动者。
应用模式:举手连麦
public void inviteUserLianMai(String userId, final CCBarLeyCallBack<Void> callBack) {
object 参数说明:
参数名称 | 参数类型 | 说明 | 是否必须 |
---|---|---|---|
userId | string | 被邀请互动者的用户id | 必选 |
onSuccess | CCBarLeyCallBack | 成功回调(含参数) | 可选 |
onFailure | CCBarLeyCallBack | 失败回调(含参数) | 可选 |
3.0 上麦更新
上麦更新是在两种情况下执行
1.推流成功之后为更新自己上麦状态,通知其他人订阅,需调用。
2.学生不能创建本地流或者推流失败,需将其麦序让出。
应用模式:举手连麦,自由连麦,自动连麦。
mBarleyService.updateLianmaiStatus(mInteractSession.getInteractBean().getUserId(),
mInteractSession.getRoomId(),"1",mInteractSession.getLocalStreamId(),
new EasyCallback(){
object 参数说明:
参数名称 | 参数类型 | 说明 | 是否必须 |
---|---|---|---|
uid | string | 用户id | 必选 |
uid | string | 房间id | 必选 |
pid | number | 上麦结果更新status | 必选 |
stid | string | streamid | 必选 |
success | EasyCallback | 成功回调(含参数) | 可选 |
fail | EasyCallback | 失败回调(含参数) | 可选 |
3.1 设置连麦模式(可设置举手连麦,自由连麦,自动连麦,仅只有老师端)
老师端设置连麦模式
应用模式:举手连麦,自由连麦,自动连麦。
public boolean setLianmaiMode(@CCAtlasClient.LianmaiMode int lianmaiMode, CCBarLeyCallBack<Void> callBack) {
object 参数说明:
参数名称 | 参数类型 | 说明 | 是否必须 |
---|---|---|---|
lianmaiMode | int | 连麦模式的值 | 必选 |
onSuccess | CCBarLeyCallBack | 成功回调(含参数) | 可选 |
onFailure | CCBarLeyCallBack | 失败回调(含参数) | 可选 |
3. 排麦通知事件
3.1 监听流服务事件
首先获取到排麦组件的流服务监听事件:
mBarLeyManager.setOnNotifyStreamListener(mClientObserver);
使用例子:(demo里有实现的代码逻辑,可供参考)
private CCAtlasClient.OnNotifyStreamListener mClientObserver = new CCAtlasClient.OnNotifyStreamListener() {
@Override
public void onStreamAllowSub(CCStream stream) {
//这块监听是监听到有流可订阅,逻辑可以根据需要设置。
}
@Override
public void onStreamRemoved(CCStream stream) {
//这块监听是监听到流移除事件,逻辑可以根据需要设置
}
@Override
public void onStreamError() {
//这块监听是流错误事件,可以根据自己需要设置
}
};
3.2 学生排麦状态通知(上麦和下麦的回调通知)
首先获取到排麦组件的排麦状态监听事件: mBarLeyManager.setOnNotifyMaiStatusLisnter(mMaiStatusLisnter);
使用例子:(demo里有实现的代码逻辑,可供参考)
private BarLeyManager.OnNotifyMaiStatusLisnter mMaiStatusLisnter = new BarLeyManager.OnNotifyMaiStatusLisnter() {
@Override
public void onUpMai(int oldStatus) {
//这块监听是监听上麦状态事件,逻辑可以根据需要设置
}
@Override
public void onDownMai() {
//这块监听是监听下麦状态事件,逻辑可以根据需要设置
}
};
3.3 学生收到老师上麦邀请回调通知(老师端邀请学生上麦)
首先获取到排麦组件的上麦邀请状态监听事件: mBarLeyManager.setOnNotifyInviteListener(mInviteListener);
使用例子:(demo里有实现的代码逻辑,可供参考)
private BarLeyManager.OnNotifyInviteListener mInviteListener = new BarLeyManager.OnNotifyInviteListener() {
@Override
public void onInvite() {
//这块监听是监听邀请状态事件,逻辑可以根据需要设置
}
@Override
public void onCancel() {
//这块监听是监听取消邀请状态事件,逻辑可以根据需要设置
}
};
3.4 学生排麦麦序更新回调(0:表示空闲;1:表示排麦;2:表示上麦;3:表示连麦;4:邀请)
首先获取到排麦组件的排麦麦序更新监听事件: mBarLeyManager.setOnQueueMaiUpdateListener(mMaiUpdataListener);
使用例子:(demo里有实现的代码逻辑,可供参考)
private BarLeyManager.OnQueueMaiUpdateListener mMaiUpdataListener = new BarLeyManager.OnQueueMaiUpdateListener() {
@Override
public void onUpdateBarLeyStatus(ArrayList<CCUser> users) {
}
};
3.5 连麦模式更新回调(举手连麦、自由连麦、自动连麦)
首先获取到排麦组件的连麦模式更新监听事件: mBarLeyManager.setOnLianmaiModeUpdateListener(mLianmaiModeUpdateListener);
使用例子:(demo里有实现的代码逻辑,可供参考)
private BarLeyManager.OnLianmaiModeUpdateListener mLianmaiModeUpdateListener = new BarLey Manager.OnLianmaiModeUpdateListener() {
@Override
public void onBarLeyMode(int mode) {
}
};
3.6 连麦模式更新回调(举手连麦、自由连麦、自动连麦)
首先获取到排麦组件的连麦模式更新监听事件: mBarLeyManager.setOnLianmaiModeUpdateListener(mLianmaiModeUpdateListener);
使用例子:(demo里有实现的代码逻辑,可供参考)
private BarLeyManager.OnLianmaiModeUpdateListener mLianmaiModeUpdateListener = new BarLey Manager.OnLianmaiModeUpdateListener() {
@Override
public void onBarLeyMode(int mode) {
}
};
3.7 监听举手状态(只有老师能接受)
首先获取到排麦组件的举手监听事件: mBarLeyManager.setOnHandupListener(mOnHandupListener);
使用例子:(demo里有实现的代码逻辑,可供参考)
private BarLeyManager.OnHandupListener mOnHandupListener = new BarLeyManager.OnHandupListener() {
@Override
public void onHandupStatus(String userid, boolean isHandup) {
}
};
3.8 学生被老师提出房间回调通知事件
首先获取到排麦组件的踢出房间监听事件: mBarLeyManager.setOnKickOutListener(mOnKichOutListener);
使用例子:(demo里有实现的代码逻辑,可供参考)
private BarLeyManager.OnKickOutListener mOnKichOutListener = new BarLeyManager.OnKickOutListener() {
@Override
public void onKickOut() {
}
};
3.9 设置用户列表更新回调通知
首先获取到排麦组件的踢出房间监听事件: mBarLeyManager.setOnUserListUpdateListener(mUserListUpdateListener);
使用例子:(demo里有实现的代码逻辑,可供参考)
private BarLeyManager.OnUserListUpdateListener mUserListUpdateListener = new BarLeyManager.OnUserListUpdateListener() {
@Override
public void onUpdateUserList(ArrayList<CCUser> users) {
}
};