Android排麦组件化
排麦组件的核心类是CCBarLeyManager,获取核心类的实例:CCBarLeyManager mBarLeyManager = CCBarLeyManager.getInstance();
1.1 举手连麦
学生可点击连麦申请连麦,需老师确认才可连麦
老师可以邀请学生连麦,需学生同意才可连麦
学生可以点击下麦,老师也可以踢学生下麦
1.2 自由连麦
学生可自由连麦,无需老师确认
学生可以点击下麦,老师也可以踢学生下麦
1.3 自动连麦
学生进入房间后自动连麦
学生不可以点击下麦,老师可以踢学生下麦
学生可以发起举手消息,这个举手跟连麦没有关系
2.0 请求排麦/举手
点击自由连麦、举手,以及自动连麦都必须要调用该接口
应用模式:举手连麦,自由连麦,自动连麦。
public void handsup(final CCBarLeyCallBack<Void> callBack) {
object 参数说明:
参数名称 | 参数类型 | 说明 | 是否必须 |
---|---|---|---|
onSuccess | CCBarLeyCallBack | 成功回调 | 可选 |
onFailure | CCBarLeyCallBack | 失败回调 | 可选 |
2.1 学生举手(自动连麦才可以设置)
举手状态由互动者端发起,通知老师端。
应用模式:自动连麦。
public void Studenthandup(boolean flag, final CCBarLeyCallBack<Void> callBack) {
object 参数说明:
参数名称 | 参数类型 | 说明 | 是否必须 |
---|---|---|---|
flag | boolean | 布尔类型true:举手;false:取消举手 | 必选 |
onSuccess | CCBarLeyCallBack | 成功回调 | 可选 |
onFailure | CCBarLeyCallBack | 失败回调 | 可选 |
2.2 取消排麦
取消排麦由学生端发起。
应用模式:举手连麦,自由连麦,自动连麦。
public void handsUpCancel(final CCBarLeyCallBack<Void> callBack) {
object 参数说明:
参数名称 | 参数类型 | 说明 | 是否必须 |
---|---|---|---|
onSuccess | CCBarLeyCallBack | 成功回调 | 可选 |
onFailure | CCBarLeyCallBack | 失败回调 | 可选 |
2.3 取消邀请
取消邀请由老师端发起
应用模式:举手连麦,自由连麦,自动连麦。
public void cancleInviteUserSpeak(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 kickUserFromSpeak(@NonNull String userId, CCBarLeyCallBack<Void> callBack) {
object 参数说明:
参数名称 | 参数类型 | 说明 | 是否必须 |
---|---|---|---|
userId | string | 被踢下麦用户id | 必选 |
onSuccess | CCBarLeyCallBack | 成功回调 | 可选 |
onFailure | CCBarLeyCallBack | 失败回调 | 可选 |
2.6 主动下麦
互动者端发起主动下麦。
应用模式:举手连麦,自由连麦。
public void handsDown(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 inviteUserSpeak(String userId, final CCBarLeyCallBack<Void> callBack) {
object 参数说明:
参数名称 | 参数类型 | 说明 | 是否必须 |
---|---|---|---|
userId | string | 被邀请互动者的用户id | 必选 |
onSuccess | CCBarLeyCallBack | 成功回调(含参数) | 可选 |
onFailure | CCBarLeyCallBack | 失败回调(含参数) | 可选 |
3.0 学员取消举手通知(举手连麦模式)
首先获取到排麦组件的取消举手事件监听:
//学员取消举手连麦
barLeyManager.setOnCancelHandUpListener(onCancelHandUpListener);
客户自己设置自己的socket事件: ccAtlasClient.sendPublishMessage(data);
使用例子:(demo里有实现的代码逻辑,可供参考)
//学员取消举手
CCBarLeyManager.OnCancelHandUpListener onCancelHandUpListener = new CCBarLeyManager.OnCancelHandUpListener() {
@Override
public void OnCancelHandUp(String userId, String userName) {
Log.i("wdh", "onSuccess: " + userName);
JSONObject data = new JSONObject();
try {
data.put("userid",userId);
data.put("username",userName);
ccAtlasClient.sendPublishMessage(data);
} catch (JSONException e) {
e.printStackTrace();
}
}
};
获取自己定义的socket监听事件:
//用户自己定义的socket事件
ccAtlasClient.setOnPublishMessageListener(mPublishMessage);
使用例子:(demo里有实现的代码逻辑,可供参考)
//用户监听自己设置的socket事件
private CCAtlasClient.OnPublishMessageListener mPublishMessage = new CCAtlasClient.OnPublishMessageListener() {
@Override
public void onPublishMessage(JSONObject object) {
try {
message(object.getString("username") + "取消举手");
} catch (JSONException e) {
e.printStackTrace();
}
}
};
3.1 设置连麦模式(可设置举手连麦,自由连麦,自动连麦,仅只有老师端)
老师端设置连麦模式
应用模式:举手连麦,自由连麦,自动连麦。
public boolean setSpeakMode(@CCAtlasClient.LianmaiMode int lianmaiMode, CCBarLeyCallBack<Void> callBack) {
object 参数说明:
参数名称 | 参数类型 | 说明 | 是否必须 |
---|---|---|---|
lianmaiMode | int | 连麦模式的值 | 必选 |
onSuccess | CCBarLeyCallBack | 成功回调(含参数) | 可选 |
onFailure | CCBarLeyCallBack | 失败回调(含参数) | 可选 |
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.setOnSpeakModeUpdateListener(mLianmaiModeUpdateListener);
使用例子:(demo里有实现的代码逻辑,可供参考)
private BarLeyManager.OnSpeakModeUpdateListener mSpeakModeUpdateListener = new BarLey Manager.OnSpeakModeUpdateListener() {
@Override
public void onBarLeyMode(int mode) {
}
};
3.6 学生被老师提出房间回调(举手连麦、自由连麦、自动连麦)
首先获取到排麦组件的踢出房间监听事件: mBarLeyManager.setOnKickOutListener(mKickOutListener);
使用例子:(demo里有实现的代码逻辑,可供参考)
private BarLeyManager.OnKickOutListener mKickOutListener= new BarLeyManager.OnKickOutListener() {
@Override
public void onKickOut() {
}
};
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) {
}
};