NERoom 房间组件
Android
动态与公告
更新日志
产品简介
产品介绍
功能特性
产品优势
使用限制
快速开始
接入流程
开通 NERoom 房间组件
下载 SDK和 Demo
集成 SDK
初始化SDK
搭建直播间
账号集成与登录
房间管理
创建房间
进入房间
监听房间事件
离开房间
删除房间
房间属性
成员管理
查询房间成员信息
移除成员
成员属性
修改成员角色
即时消息
进入和离开聊天室
消息发送
消息接收
音视频通话
加入和退出音视频房间
设置音频属性
本地视频预览
静音和取消静音
开启和关闭视频
屏幕共享
虚拟背景
云信美颜
第三方美颜
伴音和音效
耳返
麦位管理
互动白板
直播
场景实践
PK 直播组件
会议组件
语聊房组件
最佳实践
超大房间直播互动
复用 IM 的账号
错误码
常见问题

加入和退出音视频房间

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

本文介绍如何通过 NERoom SDK 加入或退出音视频房间、设置画布以及订阅远端视频流。

功能介绍

NERoom SDK 支持通过 joinRtcChannel 加入音视频房间,您可以进行实时音视频通话。

注意事项

  1. 您需要先调用 joinRoom 方法加入 NERoom 的房间。
  2. 加入或退出音视频房间后,房间内其他成员会收到 onMemberJoinRtcChannelonMemberLeaveRtcChannel 回调。

加入音视频房间

配置步骤

  1. 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将 roomUuid 设置为您所加入房间的 ID。
  2. 调用 joinRtcChannel 方法加入音视频房间。调用此方法时,房间内其他成员会收到 onMemberJoinRtcChannel 回调。

示例代码

      NERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class);
        NERoomContext roomContext = roomService.getRoomContext(roomUuid);
        if (roomContext!=null){
            roomContext.getRtcController().joinRtcChannel(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. 调用 setupLocalVideoCanvas 方法设置本端主流画布。

示例代码

      NERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class);
        NERoomContext roomContext = roomService.getRoomContext(roomUuid);
        if (roomContext!=null){
            NERoomVideoView localVideoView = findViewById(R.id.localView);
            roomContext.getRtcController().setupLocalVideoCanvas(localVideoView,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 方法设置远端主流画布。调用此方法时,您需要将 userUuid 设置为指定订阅的用户 ID。

示例代码

       NERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class);
        NERoomContext roomContext = roomService.getRoomContext(roomUuid);
        if (roomContext!=null){
            NERoomVideoView remoteView = findViewById(R.id.remoteView);
            roomContext.getRtcController().setupRemoteVideoCanvas(userUuid,remoteView,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. 调用 setupRemoteVideoSubStreamCanvas 方法设置远端辅流画布。调用此方法时,您需要将 userUuid 设置为指定订阅的用户 ID。

示例代码

    // 设置远端辅流画布 可观看到成员的屏幕共享画面
     NERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class);
        NERoomContext roomContext = roomService.getRoomContext(roomUuid);
        if (roomContext!=null){
            NERoomVideoView remoteView = findViewById(R.id.remoteView);
            roomContext.getRtcController().setupRemoteVideoSubStreamCanvas(userUuid,remoteView,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. 调用 subscribeRemoteVideoStream 方法订阅远端视频主流。调用此方法时,您需要将 userUuid 设置为指定订阅的用户 ID,并将 subscribe 参数设置为 true 开启订阅该远端用户的视频流。

示例代码

    // 只有订阅远端视频 才能看到房间成员画面
      NERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class);
        NERoomContext roomContext = roomService.getRoomContext(roomUuid);
        if (roomContext!=null){
            roomContext.getRtcController().subscribeRemoteVideoStream(userUuid, 
                    new NECallback2<Unit>() {

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

取消订阅远端视频主流

配置步骤

  1. 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将 roomUuid 设置为您所加入房间的 ID。
  2. 调用 unsubscribeRemoteVideoStream 方法取消订阅远端视频主流。调用此方法时,您需要将 userUuid 设置为指定订阅的用户 ID,并将 subscribe 参数设置为 false 取消订阅该远端用户的视频流。

示例代码

      NERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class);
        NERoomContext roomContext = roomService.getRoomContext(roomUuid);
        if (roomContext!=null){
            roomContext.getRtcController().unsubscribeRemoteVideoStream(userUuid, 
                    new NECallback2<Unit>() {

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

订阅远端视频辅流

配置步骤

  1. 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将 roomUuid 设置为您所加入房间的 ID。
  2. 调用 subscribeRemoteSubStreamVideoStream 方法订阅远端视频辅流。调用此方法时,您需要将 userUuid 设置为指定订阅的用户 ID,并将 subscribe 参数设置为 true 订阅该远端用户的视频辅流。

示例代码

    // 只有订阅成员的远端辅流,才能通过设置远端辅流画布看到成员的屏幕共享画面
       NERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class);
        NERoomContext roomContext = roomService.getRoomContext(roomUuid);
        if (roomContext!=null){
            roomContext.getRtcController().subscribeRemoteSubStreamVideo(userUuid, 
                    new NECallback2<Unit>() {

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

取消订阅远端视频辅流

配置步骤

  1. 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将 roomUuid 设置为您所加入房间的 ID。
  2. 调用 unsubscribeRemoteVideoSubStream 方法取消订阅远端视频辅流。调用此方法时,您需要将 userUuid 设置为指定订阅的用户 ID,并将 subscribe 参数设置为 false 取消订阅该远端用户的视频辅流。

示例代码

       NERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class);
        NERoomContext roomContext = roomService.getRoomContext(roomUuid);
        if (roomContext!=null){
            roomContext.getRtcController().unsubscribeRemoteVideoSubStream(userUuid, 
                    new NECallback2<Unit>() {

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

退出音视频房间

配置步骤

  1. 调用 getRoomContext 方法获取房间上下文。调用此方法时,您需要将 roomUuid 设置为您所加入房间的 ID。
  2. 调用 leaveRtcChannel 方法退出音视频房间。调用此方法时,房间内其他成员会收到 onMemberLeaveRtcChannel 回调。

示例代码

        NERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class);
        NERoomContext roomContext = roomService.getRoomContext(roomUuid);
        if (roomContext!=null){
            roomContext.getRtcController().leaveRtcChannel(new NECallback2<Unit>() {

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

API 参考

方法 功能描述
joinRoom 加入 NERoom 的房间。
getRoomContext 获取房间上下文。
joinRtcChannel 加入音视频房间。
setupLocalVideoCanvas 设置本端画布。
setupRemoteVideoCanvas 设置远端画布。
setupRemoteVideoSubStreamCanvas 设置远端辅流画布。
subscribeRemoteVideoStream 订阅远端视频主流。
subscribeRemoteVideoSubStream 订阅远端视频辅流。
leaveRtcChannel 离开音视频房间。
onMemberJoinRtcChannel 成员加入音视频房间回调。
onMemberLeaveRtcChannel 成员离开音视频房间回调。
此文档是否对你有帮助?
有帮助
我要吐槽
  • 功能介绍
  • 注意事项
  • 加入音视频房间
  • 配置步骤
  • 示例代码
  • 设置本端主流画布
  • 配置步骤
  • 示例代码
  • 设置远端主流画布
  • 配置步骤
  • 示例代码
  • 设置远端辅流画布
  • 配置步骤
  • 示例代码
  • 订阅远端视频主流
  • 配置步骤
  • 示例代码
  • 取消订阅远端视频主流
  • 配置步骤
  • 示例代码
  • 订阅远端视频辅流
  • 配置步骤
  • 示例代码
  • 取消订阅远端视频辅流
  • 配置步骤
  • 示例代码
  • 退出音视频房间
  • 配置步骤
  • 示例代码
  • API 参考