
# 房间功能
 #### joinRoom
```
public abstract int joinRoom(HRTCJoinParam joinParam);
```
【**功能说明**】
加入房间。
【**请求参数**】
joinParam：入会参数，具体请参见[HRTCJoinParam](https://support.huaweicloud.com/csdk-rtc/rtc_05_0037.html#rtc_05_0037__section1565345782011)。
【**返回参数** 】
- 0：成功。
- 1：失败。具体请参见[客户端错误码](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
- 2：上下文为空。
 
![](https://support.huaweicloud.com/csdk-rtc/public_sys-resources/caution_3.0-zh-cn.png)
该方法将会触发以下回调：
- [onConnectionStateChangedNotify](https://support.huaweicloud.com/csdk-rtc/rtc_05_0025.html#rtc_05_0025__section831212944514)：连接状态发送改变。
- [onJoinRoomSuccess](https://support.huaweicloud.com/csdk-rtc/rtc_05_0025.html#rtc_05_0025__section84321514145618)：加入房间成功时回调。
- [onJoinRoomFailure](https://support.huaweicloud.com/csdk-rtc/rtc_05_0025.html#rtc_05_0025__section846094795711)：加入房间失败时回调，失败原因请参见[•加入房间失败时，如何解决？](https://support.huaweicloud.com/csdk-rtc/rtc_05_0043.html#rtc_05_0043__li36429291173)。
- [onRemoteUserOnline](https://support.huaweicloud.com/csdk-rtc/rtc_05_0025.html#rtc_05_0025__section18158246105914)：加入房间成功后，通知房间内已加入用户的回调，不包括自己。
 
 #### leaveRoom
```
public abstract int leaveRoom()
```
【**功能说明**】
离开房间。
【**请求参数**】
无
【**返回参数** 】
- 0：成功。
- \>0：失败。具体请参见[客户端错误码](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
 
![](https://support.huaweicloud.com/csdk-rtc/public_sys-resources/caution_3.0-zh-cn.png)
会触发以下回调：
- [onLeaveRoom](https://support.huaweicloud.com/csdk-rtc/rtc_05_0025.html#rtc_05_0025__section389734165813)：离开房间回调。
- [onConnectionStateChangedNotify](https://support.huaweicloud.com/csdk-rtc/rtc_05_0025.html#rtc_05_0025__section831212944514)：连接状态改变回调。
 
 #### renewAuthorization
```
public abstract int renewAuthorization(String signature, long ctime);
```
【**功能说明**】
鉴权签名过期，收到[onAuthorizationExpired](https://support.huaweicloud.com/csdk-rtc/rtc_05_0025.html#rtc_05_0025__section11369152515524)回调后更新鉴权签名。
【**请求参数**】
- signature：鉴权签名字符串。
- ctime：过期时间，单位：秒。
【**返回参数**】
- 0：成功。
- \> 0：失败。具体请参见[客户端错误码](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
 
 #### changeUserRole
```
public abstract int changeUserRole(HRTCRoleType role, String authorization, long ctime);
```
【**功能说明**】
设置本端用户在房间内的角色。
【**请求参数**】
- role：用户角色，具体请参见[HRTCRoleType](https://support.huaweicloud.com/csdk-rtc/rtc_05_0037.html#rtc_05_0037__section1130451518425)。
- authorization：预留参数，填null。
- ctime：预留参数，填0。
【**返回参数** 】
- 0：成功。
- \>0：失败。具体请参见[客户端错误码](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
 
![](https://support.huaweicloud.com/csdk-rtc/public_sys-resources/caution_3.0-zh-cn.png)
支持joiner，player角色间相互切换。
- 切换成功将触发[onUserRoleChangedNotify](https://support.huaweicloud.com/csdk-rtc/rtc_05_0025.html#rtc_05_0025__section9263123615018)回调。
- 切换失败将触发[onError](https://support.huaweicloud.com/csdk-rtc/rtc_05_0025.html#rtc_05_0025__section1196193919554)回调，返回错误码"HRTC_ERR_CODE_USER_ROLE_CHANGE_FAIL"。
 
 #### changeUserName
```
public abstract int changeUserName(String usrName);
```
【**功能说明**】
修改用户昵称。
【**请求参数**】
usrName：用户新的昵称。昵称不为空，且最大不超过256。
【**返回参数** 】
- 0：成功。
- \>0：失败。具体请参见[客户端错误码](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
 
![](https://support.huaweicloud.com/csdk-rtc/public_sys-resources/caution_3.0-zh-cn.png)
修改成功后，本端会回调[onUserNameChangedNotify](https://support.huaweicloud.com/csdk-rtc/rtc_05_0025.html#rtc_05_0025__section7142105118228)事件，远端会回调[onRemoteUserNameChangedNotify](https://support.huaweicloud.com/csdk-rtc/rtc_05_0025.html#rtc_05_0025__section262654162219)事件。
 #### createConnection
```
public abstract HRTCConnection createConnection(String roomId, IHRTCConnectionEventHandler eventHandler);
```
【**功能说明**】
根据房间ID，创建HRTCConnection对象，为跨房做准备。
通过此接口创建一个与房间关联的HRTCConnection连接对象。
该方法支持多次调用，创建多个HRTCConnection连接对象，调用每个对象中的joinRoom方法，可以同时加入到多个房间。在每个房间中，可以分别订阅和选看房间中的用户。
具体请参见[事件回调(IHRTCConnectionEventHandler)](https://support.huaweicloud.com/csdk-rtc/rtc_05_0034.html)中相关接口和回调。
【**请求参数**】
roomId：房间ID。
eventHandler：引擎事件句柄，用于加入房间、离开房间等事件回调，具体请参见[事件回调(IHRTCConnectionEventHandler)](https://support.huaweicloud.com/csdk-rtc/rtc_05_0034.html)。
【**返回参数** 】
- 不为null：成功。
- null：失败。
 
![](https://support.huaweicloud.com/csdk-rtc/public_sys-resources/caution_3.0-zh-cn.png)
- 同一时间最多只能创建4个连接对象，每个连接对象对应的房间ID必须互不相同。
- 如果使用HRTCConnection对象加入房间，则加入房间的房间ID不能和已创建连接对象对应的房间ID相同。
- 同一时间只能以JOINER角色加入某一个房间。
 
 #### addMultiRoomMediaRelay
```
virtual int addMultiRoomMediaRelay(HRTCMultiRoomMediaRelayConfiguration roomMediaRelayConfiguration)
```
【**功能说明**】
添加单个跨房。发起跨房后由云侧单向将本端上行流推至目标房间，即只推流不收流。
【**请求参数**】
roomMediaRelayConfiguration：跨房信息，具体请参见[HRTCMultiRoomMediaRelayConfiguration](https://support.huaweicloud.com/csdk-rtc/rtc_05_0037.html#rtc_05_0037__section12447152317212)。
【**返回参数** 】
- 0：方法调用成功。
- \> 0：方法调用失败。具体请参见[HRTCErrorCode](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
 
 #### removeMultiRoomMediaRelay
```
virtual int removeMultiRoomMediaRelay(HRTCMultiRoomMediaRelayConfiguration roomMediaRelayConfiguration)
```
【**功能说明**】
删除单个跨房。
【**请求参数**】
roomMediaRelayConfiguration：跨房信息，具体请参见[HRTCMultiRoomMediaRelayConfiguration](https://support.huaweicloud.com/csdk-rtc/rtc_05_0037.html#rtc_05_0037__section12447152317212)。
【**返回参数** 】
- 0：方法调用成功。
- \> 0：方法调用失败。具体请参见[HRTCErrorCode](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
 
 #### stopMultiRoomMediaRelay
```
virtual int stopMultiRoomMediaRelay()
```
【**功能说明**】
停止所有跨房。
【**请求参数**】
【**返回参数** 】
- 0：方法调用成功。
- \> 0：方法调用失败。具体请参见[HRTCErrorCode](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
 
