joinRoom abstract method
Future<int?>
joinRoom({
- required String token,
- required UserInfo userInfo,
- required RoomConfig roomConfig,
加入房间
多房间场景下,调用 RTCVideo.createRTCRoom 创建房间后,调用此方法加入房间,同房间内其他用户进行音视频通话。
token
动态密钥,用于对进房用户进行鉴权验证。
测试时可使用控制台生成临时 token,正式上线需要使用密钥 SDK 在你的服务端生成并下发 token。Token 有效期及生成方式参看使用 Token 完成鉴权。
使用不同 AppID 的 App 是不能互通的,请务必保证生成 token 使用的 AppID 和创建引擎时使用的 AppID 相同,否则会导致加入房间失败。具体失败原因会通过 RTCRoomEventHandler.onRoomStateChanged 回调告知。
userInfo
用户信息。
roomConfig
房间参数配置,设置房间模式以及是否自动发布或订阅流。
返回值:方法调用结果
- 0:成功。
- -1:失败,userInfo 包含了无效的参数。
- -2:失败,已经在房间内。接口调用成功后,只要收到返回值为 0,且未调用 RTCRoom.leaveRoom 成功,则再次调用进房接口时,无论填写的房间 ID 和用户 ID 是否重复,均触发此返回值。
- -3:失败,room 为空。
注意:
- 同一个 App ID 的同一个房间内,每个用户的用户 ID 必须唯一。如果两个用户的用户 ID 相同,则后进房的用户会将先进房的用户踢出房间,并且先进房的用户会收到 RTCVideoEventHandler.onError 回调通知,错误类型详见 ErrorCode 中的 duplicateLogin。
- 本地用户调用此方法加入房间成功后,会收到 RTCRoomEventHandler.onRoomStateChanged 回调通知。若本地用户同时为可见用户,加入房间时远端用户会收到 RTCRoomEventHandler.onUserJoined 回调通知。关于可见性设置参看 RTCRoom.setUserVisibility。
- 用户加入房间成功后,在本地网络状况不佳的情况下,SDK 可能会与服务器失去连接,并触发 RTCVideoEventHandler.onConnectionStateChanged 回调。此时 SDK 会自动重试,直到成功重连。重连成功后,本地会收到 RTCRoomEventHandler.onRoomStateChanged 回调通知;若加入房间的是可见用户,则远端用户会收到 RTCRoomEventHandler.onUserJoined 回调通知。
Implementation
Future<int?> joinRoom({
required String token,
required UserInfo userInfo,
required RoomConfig roomConfig,
});