房间管理
更新时间: 2022/11/04 10:02:17
本文介绍在 K 歌场景中用户加入房间和离开 KTV 房间的操作。
功能原理
房间管理的时序流程图如下图所示。
实现流程
-
房主创建 KTV 房间。
业务方可直接调用 NERoom SDK 的接口创建房间,也可以通过业务方的 Server 调用 NERoom Server 去创建房间。创建 KTV 房间的具体实现方式请参见创建房间。
-
调用
joinRoom
接口加入 KTV 房间。 -
调用
getRemoteMembers
接口查询房间成员列表。 -
调用
setLocalAudioProfile
接口,设置音频profile
类型为HighQualityStereo
,设置scenario
为MUSIC
。 -
调用
leaveRoom
接口离开 KTV 房间。 -
调用
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)")
}
}
}
此文档是否对你有帮助?