开启和关闭视频

更新时间: 2022/10/31 07:24:28

本文介绍如何通过 NERoom SDK 开启或关闭视频,包括本人的视频或房间内其他成员的视频。

注意事项

您需要先调用 setupLocalVideoCanvas 方法开启本地视图后才能发布视频流。

开启本地视频

配置步骤

  1. 调用 getRoomContext 方法获取房间上下文。

    调用此方法时,您需要将 roomUuid 设置为您所加入房间的 ID。

  2. 调用 setupLocalVideoCanvas 方法设置本地画布。

  3. 调用 unmuteMyVideo 方法开启本地视频采集并发布视频流。

示例代码

        NERoomVideoView videoView=findViewById(R.id.videoView);
        NERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class);
        NERoomContext roomContext = roomService.getRoomContext(roomUuid);
        if (roomContext != null) {
            roomContext.getRtcController().unmuteMyVideo(new NECallback2<Unit>() {
                @Override
                public void onSuccess(@Nullable Unit unit) {
                    super.onSuccess(unit);
                    roomContext.getRtcController().setupLocalVideoCanvas(videoView, new NECallback2<Unit>() {
                        @Override
                        public void onSuccess(@Nullable Unit unit) {
                            super.onSuccess(unit);
                        }

                        @Override
                        public void onError(int code, @Nullable String message) {
                            super.onError(code, message);
                        }
                    });
                }

                @Override
                public void onError(int code, @Nullable String message) {
                    super.onError(code, message);
                    Log.d(TAG,"error");
                }
            });
        }

关闭本地视频

配置步骤

  1. 调用 getRoomContext 方法获取房间上下文。

    调用此方法时,您需要将 roomUuid 设置为您所加入房间的 ID。

  2. 调用 setupLocalVideoCanvas 方法取消设置本地画布。调用此方法时,您需要传入参数 null。

  3. 调用 muteMyVideo 方法关闭本地视频采集。

示例代码

        NERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class);
        NERoomContext roomContext = roomService.getRoomContext(roomUuid);
        if (roomContext != null) {
            roomContext.getRtcController().muteMyVideo(new NECallback2<Unit>() {
                @Override
                public void onSuccess(@Nullable Unit unit) {
                    super.onSuccess(unit);
                    roomContext.getRtcController().setupLocalVideoCanvas(null, new NECallback2<Unit>() {
                        @Override
                        public void onSuccess(@Nullable Unit unit) {
                            super.onSuccess(unit);
                        }

                        @Override
                        public void onError(int code, @Nullable String message) {
                            super.onError(code, message);
                        }
                    });
                }

                @Override
                public void onError(int code, @Nullable String message) {
                    super.onError(code, message);
                    Log.d(TAG,"error");
                }
            });
        }

关闭房间内其他成员的视频

注意事项

您可以在云信控制台上配置某角色是否具备关闭房间内其他成员的视频的权限,只有具备该权限的角色才可以执行此操作。

配置步骤

  1. 加入房间后,调用 getRoomContext 方法获取房间上下文。

    调用此方法时,您需要将 roomUuid 设置为您所加入房间的 ID。

  2. 调用 muteMemberVideo 方法,传入对应成员uuid,关闭房间中某个成员的视频。

示例代码

        NERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class);
        NERoomContext roomContext = roomService.getRoomContext(roomUuid);
        if (roomContext != null) {
            String userUuid = "uuid";
            roomContext.getRtcController().muteMemberVideo(userUuid, new NECallback2<Unit>() {
                @Override
                public void onSuccess(@Nullable Unit unit) {
                    super.onSuccess(unit);
                    Log.d(TAG,"success");
                }

                @Override
                public void onError(int code, @Nullable String message) {
                    super.onError(code, message);
                    Log.d(TAG,"error");
                }
            });
        }

打开房间内其他成员的视频

注意事项

您可以在云信控制台上配置某角色是否具备打开房间内其他成员的视频的权限,只有具备该权限的角色才可以执行此操作。

配置步骤

  1. 加入房间后,调用 getRoomContext 方法获取房间上下文。

    调用此方法时,您需要将 roomUuid 设置为您所加入房间的 ID。

  2. 调用 setupRemoteVideoCanvas 方法设置远端成员画布。

  3. 调用 unmuteMemberVideo 方法,传入对应成员uuid,打开房间中某个成员的视频。

示例代码

        NERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class);
        NERoomContext roomContext = roomService.getRoomContext(roomUuid);
        if (roomContext != null) {
            String userUuid = "uuid";
            roomContext.getRtcController().unmuteMemberVideo(userUuid, new NECallback2<Unit>() {
                @Override
                public void onSuccess(@Nullable Unit unit) {
                    super.onSuccess(unit);
                    Log.d(TAG,"success");
                }

                @Override
                public void onError(int code, @Nullable String message) {
                    super.onError(code, message);
                    Log.d(TAG,"error");
                }
            });
        }

API 参考

方法 功能描述
joinRoom 加入 NERoom 的房间。
getRoomContext 获取房间上下文。
setupLocalVideoCanvas 设置本地视图。
muteMyVideo 关闭本地视频。
unmuteMyVideo 打开本地视频。
muteMemberVideo 关闭房间内某个成员的视频。
unmuteMemberVideo 打开房间内某个成员的视频。
setupRemoteVideoCanvas 设置远端成员画布。
此文档是否对你有帮助?
有帮助
去反馈
  • 注意事项
  • 开启本地视频
  • 配置步骤
  • 示例代码
  • 关闭本地视频
  • 配置步骤
  • 示例代码
  • 关闭房间内其他成员的视频
  • 注意事项
  • 配置步骤
  • 示例代码
  • 打开房间内其他成员的视频
  • 注意事项
  • 配置步骤
  • 示例代码
  • API 参考