房间语音通话

本文主要介绍 云上曲率RTC SDK的提供的房间语音通话功能。

功能描述

房间语音通话是指2个及2个以上的用户通过房间开展群体语音通话的场景。云上曲率RTC SDK为开发者提供如下房间语音通话基础内容:

  • 创建RTC房间
  • 加入RTC房间
  • 设置活跃RTC房间
  • 邀请加入RTC房间
  • 退出RTC房间
  • 获取RTC房间成员列表
  • 获取RTC房间成员数量
  • 屏蔽/解除屏蔽房间用户语音

接口说明

房间事件变更通知

房间管理功能中,当出现房间成员变更、房间解散时,会接收到服务端的通知PUSH。

创建RTC房间

通过createRTCRoom接口,用户可以创建RTC房间。创建成功后,会自动加入到房间中。

接口参数说明:

参数 含义 说明
roomId 房间ID 创建的RTC房间ID
roomType 房间类型 1-语音房间 2-视频房间 3-实时语音翻译房间
lang 语言 roomType为3时必传
代码示例
public void createRTCRoom(long roomId, RTCStruct.RTCRoomType roomType, String lang, IEmptyCallback callback)

加入房间

用户可以使用enterRTCRoom接口实现加入已存在的RTC房间。

接口参数说明:

参数 含义 说明
roomId 房间ID 用户待加入的RTC房间ID
lang 语言 roomType为3时必传

注意:房间当前默认为开放式房间,任何人都可以直接加入。

在云上曲率控制台有一个配置 “支持多房间” :

  • 设置 “”,那么用户可以加入多个房间,但同时需要设置活跃房间,并接收活跃房间的声音和在活跃房间通话。如果没有设置活跃房间,则不会接收任何房间的声音。
  • 设置 “”,那么用户同一时间只能加入一个房间,接收该房间的声音和在该房间进行通话。
  • 设置活跃房间只针对实时语音房间有效。
示例代码
public void enterRTCRoom(long roomId, String lang,  ICallback<RTCStruct.RTCRoomInfo> callback)
public LDAnswer setActivityRoom(long roomId)//设置活跃房间

邀请加入房间

用户可以使用inviteUserIntoRTCRoom接口实现邀请其他用户加入该用户已加入的RTC房间。

接口参数说明:

参数 含义 说明
roomId 房间ID 邀请用户加入的RTC房间ID
uids 用户ID 邀请加入RTC房间的用户ID

当接收到邀请时,房间外用户会接收到IRTCPushProcessor 处理的 pushInviteIntoRTCRoom的推送消息,如果用户同意,需要调用enterRTCRoom接口进入房间。

pushInviteIntoRTCRoom接口参数说明:

参数 含义 说明
roomId 房间ID 邀请加入的房间ID
userId 用户ID 发起邀请的用户ID
示例代码
public void inviteUserIntoRTCRoom(long roomId, HashSet<Long> uids, IEmptyCallback callback)
public interface IRTCPushProcessor {
default void pushInviteIntoRTCRoom(long roomId, long userId){}
}

退出RTC房间

用户可以通过leaveRTCRoom接口退出已加入的RTC房间。

接口参数说明:

参数 含义 说明
roomId 房间ID 要退出的RTC房间ID
代码示例
public void leaveRTCRoom(long roomId, IEmptyCallback callback)

获取RTC房间成员列表

RTC房间内成员可以使用getRTCRoomMembers接口获取所在RTC房间的成员情况,包括成员数量等。

接口参数说明:

参数 含义 说明
roomId 房间ID 获取房间成员请求的RTC房间ID
代码示例
public void getRTCRoomMembers(long roomId,  ICallback<RTCStruct.RTCRoomInfo> callback)

获取RTC房间成员数量

未加入RTC房间的用户可以使用getRTCRoomMemberCount接口获取RTC房间的成员数量。

接口参数说明:

参数 含义 说明
roomId 房间ID 获取房间成员数量的RTC房间ID
代码示例
public void getRTCRoomMemberCount(long roomId,  ICallback<Integer> callback)

屏蔽RTC房间中用户语音

blockUserInVoiceRoom接口可以屏蔽掉RTC房间内容用户的语音。屏蔽后,该用户的语音不会被房间内其他用户接收到。

接口参数说明:

参数 含义 说明
roomId 房间ID 要屏蔽用户语音的RTC房间ID
uids 用户ID 屏蔽的用户ID
代码示例
public void blockUserInVoiceRoom(long roomId, HashSet<Long> uids,IEmptyCallback callback)

解除屏蔽RTC房间中用户语音

unblockUserInVoiceRoom接口可以解除屏蔽RTC房间内容用户的语音。解除屏蔽后,该用户的语音可以被房间内其他用户接收到。

接口参数说明:

参数 含义 说明
roomId 房间ID 要解除屏蔽用户语音的RTC房间ID
uids 用户ID 解除屏蔽的用户ID
代码示例
public void unblockUserInVoiceRoom(long roomId, HashSet<Long> uids, IEmptyCallback callback)