|
|
|
[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 请求排麦/举手
|
|
|
|
|
|
|
|
点击自由连麦、举手,以及自动连麦都必须要调用该接口
|
|
|
|
|
|
|
|
应用模式:举手连麦,自由连麦,自动连麦。
|
|
|
|
|
|
|
|
```javascript
|
|
|
|
public void requestLianMai(final CCBarLeyCallBack<Void> callBack) {
|
|
|
|
```
|
|
|
|
|
|
|
|
object 参数说明:
|
|
|
|
|
|
|
|
| 参数名称 | 参数类型 | 说明 | 是否必须 |
|
|
|
|
| -------- | -------- | ------------------ | -------- |
|
|
|
|
| onSuccess| CCBarLeyCallBack | 成功回调 | 可选 |
|
|
|
|
| onFailure| CCBarLeyCallBack | 失败回调 | 可选 |
|
|
|
|
|
|
|
|
## 2.1 学生举手
|
|
|
|
|
|
|
|
举手状态由互动者端发起,通知老师端,老师端可以同意或者不同意。
|
|
|
|
|
|
|
|
应用模式:举手连麦,自由连麦,自动连麦。
|
|
|
|
|
|
|
|
```javascript
|
|
|
|
public void handup(boolean flag, final CCBarLeyCallBack<Void> callBack) {
|
|
|
|
```
|
|
|
|
|
|
|
|
object 参数说明:
|
|
|
|
|
|
|
|
| 参数名称 | 参数类型 | 说明 | 是否必须 |
|
|
|
|
| -------- | -------- | ------------------ | -------- |
|
|
|
|
| flag | boolean | 布尔类型true:举手;false:取消举手 | 必选 |
|
|
|
|
| onSuccess| CCBarLeyCallBack | 成功回调 | 可选 |
|
|
|
|
| onFailure| CCBarLeyCallBack | 失败回调 | 可选 |
|
|
|
|
|
|
|
|
|
|
|
|
## 2.2 取消排麦
|
|
|
|
|
|
|
|
取消排麦由学生端发起。
|
|
|
|
|
|
|
|
应用模式:举手连麦,自由连麦,自动连麦。
|
|
|
|
|
|
|
|
```javascript
|
|
|
|
public void cancleLianMai(final CCBarLeyCallBack<Void> callBack) {
|
|
|
|
```
|
|
|
|
|
|
|
|
object 参数说明:
|
|
|
|
|
|
|
|
| 参数名称 | 参数类型 | 说明 | 是否必须 |
|
|
|
|
| -------- | -------- | ------------------ | -------- |
|
|
|
|
| onSuccess| CCBarLeyCallBack | 成功回调 | 可选 |
|
|
|
|
| onFailure| CCBarLeyCallBack | 失败回调 | 可选 |
|
|
|
|
|
|
|
|
## 2.3 取消邀请
|
|
|
|
|
|
|
|
取消邀请由老师端发起
|
|
|
|
|
|
|
|
应用模式:举手连麦,自由连麦,自动连麦。
|
|
|
|
|
|
|
|
```javascript
|
|
|
|
|
|
|
|
public void cancleInviteUserLianMai(String userId, CCBarLeyCallBack<Void> callBack) {
|
|
|
|
|
|
|
|
```
|
|
|
|
object 参数说明:
|
|
|
|
|
|
|
|
| 参数名称 | 参数类型 | 说明 | 是否必须 |
|
|
|
|
| ---------- | -------- | ------------------ | -------- |
|
|
|
|
| userId | string | 被被取消邀请的用户id | 必选 |
|
|
|
|
| onSuccess | CCBarLeyCallBack| 成功回调 | 可选 |
|
|
|
|
| onFailure | CCBarLeyCallBack| 失败回调 | 可选 |
|
|
|
|
|
|
|
|
## 2.4 拒绝老师连麦邀请
|
|
|
|
|
|
|
|
拒绝老师连麦邀请由学生端发起
|
|
|
|
|
|
|
|
应用模式:举手连麦,自由连麦,自动连麦。
|
|
|
|
|
|
|
|
```javascript
|
|
|
|
|
|
|
|
public void refuseTeacherInvite(CCBarLeyCallBack<Void> callBack) {
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
object 参数说明:
|
|
|
|
|
|
|
|
| 参数名称 | 参数类型 | 说明 | 是否必须 |
|
|
|
|
| ---------- | -------- | ------------------ | -------- |
|
|
|
|
| onSuccess | CCBarLeyCallBack| 成功回调(含参数) | 可选 |
|
|
|
|
| onFailure | CCBarLeyCallBack| 失败回调(含参数) | 可选 |
|
|
|
|
|
|
|
|
## 2.5 踢人下麦
|
|
|
|
|
|
|
|
老师端发起踢人下麦
|
|
|
|
|
|
|
|
应用模式:举手连麦,自由连麦,自动连麦。
|
|
|
|
|
|
|
|
```javascript
|
|
|
|
public void kickUserFromLianmai(@NonNull String userId, CCBarLeyCallBack<Void> callBack) {
|
|
|
|
```
|
|
|
|
|
|
|
|
object 参数说明:
|
|
|
|
|
|
|
|
| 参数名称 | 参数类型 | 说明 | 是否必须 |
|
|
|
|
| -------- | -------- | ------------------ | -------- |
|
|
|
|
| userId | string | 被踢下麦用户id | 必选 |
|
|
|
|
| onSuccess | CCBarLeyCallBack | 成功回调 | 可选 |
|
|
|
|
| onFailure | CCBarLeyCallBack | 失败回调 | 可选 |
|
|
|
|
|
|
|
|
## 2.6 主动下麦
|
|
|
|
|
|
|
|
互动者端发起主动下麦。
|
|
|
|
|
|
|
|
应用模式:举手连麦,自由连麦。
|
|
|
|
|
|
|
|
```javascript
|
|
|
|
public void stopLianMai(CCBarLeyCallBack<Void> callBack) {
|
|
|
|
```
|
|
|
|
|
|
|
|
object 参数说明:
|
|
|
|
|
|
|
|
| 参数名称 | 参数类型 | 说明 | 是否必须 |
|
|
|
|
| -------- | -------- | ------------------ | -------- |
|
|
|
|
| onSuccess | CCBarLeyCallBack | 成功回调(含参数) | 可选 |
|
|
|
|
| onFailure | CCBarLeyCallBack | 失败回调(含参数) | 可选 |
|
|
|
|
|
|
|
|
|
|
|
|
## 2.7 同意举手
|
|
|
|
|
|
|
|
老师端同意学生上麦请求。
|
|
|
|
|
|
|
|
应用模式:举手连麦
|
|
|
|
|
|
|
|
```javascript
|
|
|
|
public void certainHandup(String userId, final CCBarLeyCallBack<Void> callBack) {
|
|
|
|
```
|
|
|
|
|
|
|
|
object 参数说明:
|
|
|
|
|
|
|
|
| 参数名称 | 参数类型 | 说明 | 是否必须 |
|
|
|
|
| -------- | -------- | ------------------ | -------- |
|
|
|
|
| userId | string | 同意上麦用户id | 必选 |
|
|
|
|
| onSuccess | CCBarLeyCallBack | 成功回调(含参数) | 可选 |
|
|
|
|
| onFailure | CCBarLeyCallBack | 失败回调(含参数) | 可选 |
|
|
|
|
|
|
|
|
|
|
|
|
## 2.8 接受老师邀请
|
|
|
|
|
|
|
|
学生端接受老师的上麦邀请,同意上麦。
|
|
|
|
|
|
|
|
应用模式:举手连麦
|
|
|
|
|
|
|
|
```javascript
|
|
|
|
public void acceptTeacherInvite(final CCBarLeyCallBack<Void> callBack) {
|
|
|
|
```
|
|
|
|
|
|
|
|
object 参数说明:
|
|
|
|
|
|
|
|
| 参数名称 | 参数类型 | 说明 | 是否必须 |
|
|
|
|
| -------- | -------- | ------------------ | -------- |
|
|
|
|
| onSuccess | CCBarLeyCallBack | 成功回调(含参数) | 可选 |
|
|
|
|
| onFailure | CCBarLeyCallBack | 失败回调(含参数) | 可选 |
|
|
|
|
|
|
|
|
|
|
|
|
## 2.9 邀请学生上麦
|
|
|
|
|
|
|
|
老师端发送邀请,接收端是互动者。
|
|
|
|
|
|
|
|
应用模式:举手连麦
|
|
|
|
|
|
|
|
```javascript
|
|
|
|
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里有实现的代码逻辑,可供参考)
|
|
|
|
```javascript
|
|
|
|
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里有实现的代码逻辑,可供参考)
|
|
|
|
|
|
|
|
```javascript
|
|
|
|
private BarLeyManager.OnNotifyMaiStatusLisnter mMaiStatusLisnter = new BarLeyManager.OnNotifyMaiStatusLisnter() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onUpMai(int oldStatus) {
|
|
|
|
//这块监听是监听上麦状态事件,逻辑可以根据需要设置
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onDownMai() {
|
|
|
|
//这块监听是监听下麦状态事件,逻辑可以根据需要设置
|
|
|
|
}
|
|
|
|
};
|
|
|
|
```
|
|
|
|
|
|
|
|
## 3.3 学生收到老师上麦邀请回调通知(老师端邀请学生上麦)
|
|
|
|
|
|
|
|
首先获取到排麦组件的上麦邀请状态监听事件:
|
|
|
|
mBarLeyManager.setOnNotifyInviteListener(mInviteListener);
|
|
|
|
|
|
|
|
使用例子:(demo里有实现的代码逻辑,可供参考)
|
|
|
|
```javascript
|
|
|
|
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里有实现的代码逻辑,可供参考)
|
|
|
|
```javascript
|
|
|
|
private BarLeyManager.OnQueueMaiUpdateListener mMaiUpdataListener = new BarLeyManager.OnQueueMaiUpdateListener() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onUpdateBarLeyStatus(ArrayList<CCUser> users) {
|
|
|
|
|
|
|
|
}
|
|
|
|
};
|
|
|
|
```
|
|
|
|
|
|
|
|
## 3.5 连麦模式更新回调(举手连麦、自由连麦、自动连麦)
|
|
|
|
|
|
|
|
首先获取到排麦组件的连麦模式更新监听事件:
|
|
|
|
mBarLeyManager.setOnLianmaiModeUpdateListener(mLianmaiModeUpdateListener);
|
|
|
|
|
|
|
|
使用例子:(demo里有实现的代码逻辑,可供参考)
|
|
|
|
```javascript
|
|
|
|
private BarLeyManager.OnLianmaiModeUpdateListener mLianmaiModeUpdateListener = new BarLey Manager.OnLianmaiModeUpdateListener() {
|
|
|
|
@Override
|
|
|
|
public void onBarLeyMode(int mode) {
|
|
|
|
|
|
|
|
}
|
|
|
|
};
|
|
|
|
```
|
|
|
|
## 3.6 连麦模式更新回调(举手连麦、自由连麦、自动连麦)
|
|
|
|
|
|
|
|
首先获取到排麦组件的连麦模式更新监听事件:
|
|
|
|
mBarLeyManager.setOnLianmaiModeUpdateListener(mLianmaiModeUpdateListener);
|
|
|
|
|
|
|
|
使用例子:(demo里有实现的代码逻辑,可供参考)
|
|
|
|
```javascript
|
|
|
|
private BarLeyManager.OnLianmaiModeUpdateListener mLianmaiModeUpdateListener = new BarLey Manager.OnLianmaiModeUpdateListener() {
|
|
|
|
@Override
|
|
|
|
public void onBarLeyMode(int mode) {
|
|
|
|
|
|
|
|
}
|
|
|
|
};
|
|
|
|
```
|
|
|
|
|
|
|
|
## 3.7 监听举手状态(只有老师能接受)
|
|
|
|
|
|
|
|
首先获取到排麦组件的举手监听事件:
|
|
|
|
mBarLeyManager.setOnHandupListener(mOnHandupListener);
|
|
|
|
|
|
|
|
使用例子:(demo里有实现的代码逻辑,可供参考)
|
|
|
|
```javascript
|
|
|
|
private BarLeyManager.OnHandupListener mOnHandupListener = new BarLeyManager.OnHandupListener() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onHandupStatus(String userid, boolean isHandup) {
|
|
|
|
|
|
|
|
}
|
|
|
|
};
|
|
|
|
```
|
|
|
|
|
|
|
|
## 3.8 学生被老师提出房间回调通知事件
|
|
|
|
|
|
|
|
首先获取到排麦组件的踢出房间监听事件:
|
|
|
|
mBarLeyManager.setOnKickOutListener(mOnKichOutListener);
|
|
|
|
|
|
|
|
使用例子:(demo里有实现的代码逻辑,可供参考)
|
|
|
|
```javascript
|
|
|
|
private BarLeyManager.OnKickOutListener mOnKichOutListener = new BarLeyManager.OnKickOutListener() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onKickOut() {
|
|
|
|
|
|
|
|
}
|
|
|
|
};
|
|
|
|
```
|
|
|
|
|
|
|
|
## 3.9 设置用户列表更新回调通知
|
|
|
|
|
|
|
|
首先获取到排麦组件的踢出房间监听事件:
|
|
|
|
mBarLeyManager.setOnUserListUpdateListener(mUserListUpdateListener);
|
|
|
|
|
|
|
|
使用例子:(demo里有实现的代码逻辑,可供参考)
|
|
|
|
```javascript
|
|
|
|
private BarLeyManager.OnUserListUpdateListener mUserListUpdateListener = new BarLeyManager.OnUserListUpdateListener() {
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onUpdateUserList(ArrayList<CCUser> users) {
|
|
|
|
|
|
|
|
}
|
|
|
|
};
|
|
|
|
``` |
|
|
|
\ No newline at end of file |