成员禁言
更新时间: 2023/11/10 07:17:42
本文将介绍如何使用 NERoom SDK 实现对房间内的指定成员进行禁言,并禁用音频和视频功能。
前提条件
- 已在控制台为指定成员配置成员禁言权限。关于如何设置角色权限,参见 如何修改角色的权限。
成员禁言
房间创建者或管理员可以通过 banMemberChat
接口对指定成员禁言。
成员禁言后,将触发 onMemberChatBanStateChanged
事件回调。
示例代码如下:
java NERoomContext roomContext = NERoomKit.getInstance().getRoomService().getRoomContext(roomUuid);
if (roomContext==null){
return;
}
roomContext.addRoomListener(new NERoomListenerAdapter(){
@Override
public void onMemberChatBanStateChanged(@NonNull NERoomMember member, boolean banned, long duration, @Nullable String notifyExt, @Nullable NERoomMember operateBy) {
super.onMemberChatBanStateChanged(member, banned, duration, notifyExt, operateBy);
}
});
String targetUserUuid = "userUuid";
String notifyExt = "notifyExt";
long duration=0; // 0表示永久禁言,大于0表示临时禁言
roomContext.getChatController().banMemberChat(targetUserUuid, duration, notifyExt, new NECallback2<Unit>() {
@Override
public void onSuccess(@Nullable Unit data) {
super.onSuccess(data);
}
@Override
public void onError(int code, @Nullable String message) {
super.onError(code, message);
}
});
如果需要解除成员禁言,可调用 unbanMemberChat
接口。解除成员禁言后,触发 onMemberChatBanStateChanged
事件回调。
禁用音频功能
房间创建者或管理员也可以通过 banMemberAudio
接口设置房间内指定成员禁止开启音频功能。
成员禁止开启音频功能后,将触发 onMemberAudioBanStateChanged
事件回调,以及如果有成员音频发生变更(开麦 -> 关麦) onMemberAudioMuteChanged
事件回调。
示例代码如下:
java NERoomContext roomContext = NERoomKit.getInstance().getRoomService().getRoomContext(roomUuid);
if (roomContext==null){
return;
}
roomContext.addRoomListener(new NERoomListenerAdapter(){
@Override
public void onMemberAudioBanStateChanged(@NonNull NERoomMember member, boolean banned, long duration, @Nullable String notifyExt, @Nullable NERoomMember operateBy) {
super.onMemberAudioBanStateChanged(member, banned, duration, notifyExt, operateBy);
}
});
String targetUserUuid = "userUuid";
String notifyExt = "notifyExt";
long duration=0; // 0表示永久禁言,大于0表示临时禁言
roomContext.getRtcController().banMemberAudio(targetUserUuid, duration, notifyExt, new NECallback2<Unit>() {
@Override
public void onSuccess(@Nullable Unit data) {
super.onSuccess(data);
}
@Override
public void onError(int code, @Nullable String message) {
super.onError(code, message);
}
});
如果需要解除禁用音频功能,可调用 unbanMemberAudio
接口。解除后,触发 onMemberAudioBanStateChanged
事件回调。
禁用视频功能
房间创建者或管理员也可以通过 banMemberVideo
接口设置房间内所有成员禁止开启视频。
成员禁止开启视频功能后,将触发 onMemberVideoBanStateChanged
事件回调, 以及如果有成员视频发生变更(开视频 -> 关视频) onMemberVideoMuteChanged
事件回调。
示例代码如下:
java NERoomContext roomContext = NERoomKit.getInstance().getRoomService().getRoomContext(roomUuid);
if (roomContext==null){
return;
}
roomContext.addRoomListener(new NERoomListenerAdapter(){
@Override
public void onMemberVideoBanStateChanged(@NonNull NERoomMember member, boolean banned, long duration, @Nullable String notifyExt, @Nullable NERoomMember operateBy) {
super.onMemberVideoBanStateChanged(member, banned, duration, notifyExt, operateBy);
}
});
String targetUserUuid = "userUuid";
String notifyExt = "notifyExt";
long duration=0; // 0表示永久禁言,大于0表示临时禁言
roomContext.getRtcController().banMemberVideo(targetUserUuid, duration, notifyExt, new NECallback2<Unit>() {
@Override
public void onSuccess(@Nullable Unit data) {
super.onSuccess(data);
}
@Override
public void onError(int code, @Nullable String message) {
super.onError(code, message);
}
});
如果需要解除禁用视频功能,可调用 unbanMemberVideo
接口。解除后,触发 onMemberVideoBanStateChanged
事件回调。
此文档是否对你有帮助?