差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 后一修订版 两侧同时换到之后的修订记录 | ||
im:android:basics:multiuserconference [2018/09/25 02:57] jk |
im:android:basics:multiuserconference [2020/02/08 03:33] zhaoliang [互动视频会议] |
||
---|---|---|---|
行 9: | 行 9: | ||
可以创建以下几种类型的会议: | 可以创建以下几种类型的会议: | ||
- | 1.Communication:普通通信会议,最多支持参会者6人,会议里的每个参会者都可以自由说话和发布视频,该会议类型在服务器不做语音的再编码,音质最好,适用于远程医疗,在线客服等场景; | + | 1.Communication:普通通信会议,最多支持参会者9人,会议里的每个参会者都可以自由说话和发布视频,该会议类型在服务器不做语音的再编码,音质最好,适用于远程医疗,在线客服等场景; |
2.Large Communication:大型通信会议,最多参会者30人,会议里的每个参会者都可以自由说话,最多支持6个人发布视频,该会议模式在服务器做混音处理,支持更多的人说话,适用于大型会议等场景; | 2.Large Communication:大型通信会议,最多参会者30人,会议里的每个参会者都可以自由说话,最多支持6个人发布视频,该会议模式在服务器做混音处理,支持更多的人说话,适用于大型会议等场景; | ||
行 348: | 行 348: | ||
2. 创建者createAndJoin后的角色是Admin,其他成员第一次调用接口''EMConferenceManager#joinConference(String confId, String password, EMValueCallBack<EMConference> callback)''加入直播后的权限是观众Audience,Audience只能订阅数据流 | 2. 创建者createAndJoin后的角色是Admin,其他成员第一次调用接口''EMConferenceManager#joinConference(String confId, String password, EMValueCallBack<EMConference> callback)''加入直播后的权限是观众Audience,Audience只能订阅数据流 | ||
- | 3. 观众Audience如果想发布数据流 即上麦,需要给管理员发申请。SDK没有提供申请接口,你可以自定义。 | + | 3. 观众Audience如果想发布数据流 即上麦,需要给管理员发申请。SDK没有提供申请接口,可以通过IM消息申请,也可以通过其他通道自己实现。我们的demo的LiveActivity中有通过IM消息通道申请的示例,可以参考。 |
+ | |||
+ | <code java> | ||
+ | sendRequestMessage(content, inviter, Constant.OP_REQUEST_TOBE_SPEAKER); | ||
+ | </code> | ||
管理员如果同意Audience上麦,需要调用接口''EMConferenceManager#grantRole(String confId, EMConferenceMember member, EMConferenceRole toRole, EMValueCallBack<String> callback)''将角色Audience更改为Speaker | 管理员如果同意Audience上麦,需要调用接口''EMConferenceManager#grantRole(String confId, EMConferenceMember member, EMConferenceRole toRole, EMValueCallBack<String> callback)''将角色Audience更改为Speaker | ||
行 365: | 行 370: | ||
EMLog.i(TAG, "changeRole failed, error: " + error + " - " + errorMsg); | EMLog.i(TAG, "changeRole failed, error: " + error + " - " + errorMsg); | ||
} | } | ||
- | }); | + | }); |
</code> | </code> | ||
成员角色改变后,被改变的成员会在接口''EMConferenceManager#onRoleChanged(EMConferenceManager.EMConferenceRole role)''中收到回调 | 成员角色改变后,被改变的成员会在接口''EMConferenceManager#onRoleChanged(EMConferenceManager.EMConferenceRole role)''中收到回调 | ||
- | @Override | + | |
- | public void onRoleChanged(EMConferenceManager.EMConferenceRole role) { | + | <code java> |
- | EMLog.i(TAG, "onRoleChanged, role: " + role); | + | public void onRoleChanged(EMConferenceManager.EMConferenceRole role) { |
- | currentRole = role; | + | EMLog.i(TAG, "onRoleChanged, role: " + role); |
- | | + | currentRole = role; |
- | if (role == EMConferenceManager.EMConferenceRole.Talker) { | + | |
- | // 管理员把当前用户角色更改为主播,可以进行publish本地流等操作 | + | if (role == EMConferenceManager.EMConferenceRole.Talker) { |
- | } else if (role == EMConferenceManager.EMConferenceRole.Audience) { | + | // 管理员把当前用户角色更改为主播,可以进行publish本地流等操作 |
- | // 管理员把当前用户角色改变为观众 | + | } else if (role == EMConferenceManager.EMConferenceRole.Audience) { |
- | } | + | // 管理员把当前用户角色改变为观众 |
} | } | ||
+ | } | ||
+ | </code> | ||
4. 角色从Audience变为Speaker,成员就可以发布数据流了 | 4. 角色从Audience变为Speaker,成员就可以发布数据流了 |