Web

本文档主要介绍如何主动退出当前 TRTC 房间,同时还会介绍在什么情况下会被迫退出房间:



步骤1:完成前序步骤

可以参考文档 进入房间,创建 trtc 并进入房间。

步骤2:退出当前房间

调用 trtc.exitRoom() 方法退出房间,结束音视频通话。
await trtc.exitRoom();
// 退房成功后,若后续无需使用 trtc 实例,则可以调用 trtc.destroy 方法销毁实例,及时释放相关资源。销毁后的 trtc 实例无法继续使用,需要重新创建新的实例。
trtc.destroy();
处理被踢出
除了用户主动退出房间之外,用户也有可能因为如下原因被踢出房间,此时 SDK 会抛出KICKED_OUT 事件,这时不需要调用 trtc.exitRoom() 退房,SDK 自动进入退房状态。
1. kick:两个相同 userId 的用户进入相同房间,前一个进房的用户会被踢出。同名用户同时进入同一房间是不允许的行为,可能会导致双方音视频通话异常,应避免出现这种情况。
2. banned:通过服务端的RemoveUser | RemoveUserByStrRoomId接口将某个用户踢出某个 TRTC 房间,该用户会收到被踢事件,reason 为 banned
3. room-disband:通过服务端的 DismissRoom | DismissRoomByStrRoomId 接口将某个 TRTC 房间解散,解散房间之后,该房间的所有用户都会收到被踢事件,reason 为 room-disband
trtc.on(TRTC.EVENT.KICKED_OUT, error => {
console.error(`kicked out, reason:${error.reason}, message:${error.message}`);
// error.reason 有以下几种情况
// 'kick' 由于相同 userId 进相同房间,导致先进入的用户被踢。
// 'banned' 被管理员移出房间
// 'room-disband' 管理员解散了房间
});