房间管理

更新时间: 2022/11/04 10:02:17

本文介绍在 K 歌场景中用户加入房间和离开 KTV 房间的操作。

功能原理

房间管理的时序流程图如下图所示。

房间管理.png

实现流程

  1. 房主创建 KTV 房间。

    业务方可直接调用 NERoom SDK 的接口创建房间,也可以通过业务方的 Server 调用 NERoom Server 去创建房间。创建 KTV 房间的具体实现方式请参见创建房间

  2. 调用 joinRoom 接口加入 KTV 房间。

  3. 调用 getRemoteMembers 接口查询房间成员列表。

  4. 调用 setLocalAudioProfile 接口,设置音频 profile 类型为 HighQualityStereo,设置 scenarioMUSIC

  5. 调用 leaveRoom 接口离开 KTV 房间。

  6. 调用 endRoom 接口结束 KTV 房间。

示例代码

// 创建房间
        var param = NECreateRoomParams()
        param.roomName = "房间名"
        param.roomUuid = "房间号"
        param.templateId = 1
        NERoomKit.shared().roomService.createRoom(params: param, options: NECreateRoomOptions(), callback: { code, msg, obj in
            if (code == 0) {
                print("创建房间成功")
            } else {
                print("创建房间失败 code:\(code) msg:\(msg)")
            }
        })

        
// 加入房间
        let joinParams = NEJoinRoomParams()
        joinParams.roomUuid = roomUuid
        joinParams.userName = userName
        joinParams.role = role
        let joinOptions = NEJoinRoomOptions()
        NERoomKit.shared().roomService.joinRoom(params: joinParams, options: NEJoinRoomOptions()) { code, msg, context in
            if (code == 0) {
                print("加入房间成功")
            } else {
                print("加入房间失败 code:\(code) msg:\(msg)")
            }
        }

// 加入聊天室
// context在加入房间成功时返回
context.chatController.joinChatroom { code, msg, _ in
        if (code == 0) {
            print("加入聊天室成功")
        } else {
            print("加入聊天室失败 code:\(code) msg:\(msg)")
        }
}

// 加入音视频房间
// context在加入房间成功时返回
context.chatController.joinRtcChannel { code, msg, _ in
        if (code == 0) {
            print("加入音视频房间成功")
        } else {
            print("加入音视频房间失败 code:\(code) msg:\(msg)")
        }
}


// 查询房间成员列表
// context在加入房间成功时返回
context.remoteMembers 

// 设置音频属性
// context在加入房间成功时返回
    func setAudioProfile() {
        context?.rtcController.setAudioProfile(.highQualityStereo, scenario: .music)
        context?.rtcController.setChannelProfile(.liveBroadcasting)
    }
// 离开房间
// context在加入房间成功时返回
     func leaveRoom(callback: NECallback<AnyObject>) {
                context.leaveRoom { code, msg, obj in
                    if (code == 0) {
                        print("离开房间成功")
                    } else {
                        print("离开房间失败 code:\(code) msg:\(msg)")
                    }
                }
    }
//结束房间
    func endRoom(callback: NECallback<AnyObject>) {
            context.endRoom { code, msg, obj in
                if (code == 0) {
                    print("离开房间成功")
                } else {
                    print("离开房间失败 code:\(code) msg:\(msg)")
                }
            }
    }
此文档是否对你有帮助?
有帮助
去反馈
  • 功能原理
  • 实现流程