joinRTSRoom method

Future<int?> joinRTSRoom(
  1. string token,
  2. UserInfo userInfo
)

@detail api @brief 加入 RTS 房间。
调用 createRTSRoom{@link #RTCEngine#createRTSRoom} 创建房间后,调用此方法加入房间,同房间内其他用户进行音视频通话。 @param token 动态密钥。用于对进房用户进行鉴权验证。
进入房间需要携带 Token。测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。Token 有效期及生成方式参看使用 Token 完成鉴权
使用不同 AppID 的 App 是不能互通的。
请务必保证生成 Token 使用的 AppID 和创建引擎时使用的 AppID 相同,否则会导致加入房间失败。 @param userInfo 用户信息。参看 UserInfo{@link #UserInfo}。 @return - 0:方法调用成功。 - 0: 成功。触发以下回调: - 本端收到房间状态通知 onRoomStateChanged{@link #IRTSRoomEventHandler#onRoomStateChanged} 回调。 - -1:roomID / userInfo.uid 包含了无效的参数。 - -2:已经在房间内。接口调用成功后,只要收到返回值为 0 ,且未调用 leaveRoom{@link #RTSRoom#leaveRoom} 成功,则再次调用进房接口时,无论填写的房间 ID 和用户 ID 是否重复,均触发此返回值。 调用失败时,具体失败原因会通过 onRoomStateChanged{@link #IRTSRoomEventHandler#onRoomStateChanged} 回调告知。 @note - 同一个 App ID 的同一个房间内,每个用户的用户 ID 必须是唯一的。如果两个用户的用户 ID 相同,则后进房的用户会将先进房的用户踢出房间,并且先进房的用户会收到 onRoomStateChanged{@link #IRTSRoomEventHandler#onRoomStateChanged} 回调通知,错误类型详见 ERROR_CODE_DUPLICATE_LOGIN{@link #ErrorCode#ERROR_CODE_DUPLICATE_LOGIN}。 - 用户加入房间成功后,在本地网络状况不佳的情况下,SDK 可能会与服务器失去连接,并触发 onConnectionStateChanged{@link #IRTCEngineEventHandler#onConnectionStateChanged} 回调。此时 SDK 会自动重试,直到成功重连。重连成功后,本地会收到 onRoomStateChanged{@link #IRTSRoomEventHandler#onRoomStateChanged} 回调通知;如果加入房间的用户是可见用户,远端用户会收到 onUserJoined{@link #IRTSRoomEventHandler#onUserJoined} 回调通知。

Implementation

Future<int?> joinRTSRoom(string token, UserInfo userInfo) async {
  $a() => ($instance as $p_a.RTCRoom)
      .joinRTSRoom(token, unpackObject<$p_a.UserInfo>(userInfo));
  $i() => ($instance as $p_i.ByteRTCRoom)
      .joinRTSRoom(token, unpackObject<$p_i.ByteRTCUserInfo>(userInfo));

  if (Platform.isAndroid) {
    return $a();
  } else if (Platform.isIOS) {
    return $i();
  } else {
    throw UnsupportedError(
        'Not Support Platform ${Platform.operatingSystem}');
  }
}