成员禁言

更新时间: 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 事件回调。

此文档是否对你有帮助?
有帮助
去反馈
  • 前提条件
  • 成员禁言
  • 禁用音频功能
  • 禁用视频功能