房间语音通话
更新时间:
本文主要介绍 云上曲率RTC SDK的提供的房间语音通话功能。
功能描述
房间语音通话是指2个及2个以上的用户通过房间开展群体语音通话的场景。云上曲率RTC SDK为开发者提供如下房间语音通话基础内容:
- 创建RTC房间
- 加入RTC房间
- 设置活跃RTC房间
- 邀请加入RTC房间
- 退出RTC房间
- 获取RTC房间成员列表
- 获取RTC房间成员数量
- 屏蔽/解除屏蔽房间用户语音
接口说明
房间事件变更通知
房间管理功能中,当出现房间成员变更、房间解散时,会接收到服务端的通知PUSH。
创建RTC房间
通过createVoiceRoomWithId
接口,用户可以创建RTC房间。创建成功后,会自动加入到房间中。
接口参数说明:
参数
含义
说明
roomId
房间ID
创建的RTC房间ID
enableRecord
是否允许录制
录制功能,默认为false,不录制。如有录制需求,请联系云上曲率技术人员
timeout
超时时间
加入房间请求的超时时间,单位为秒
代码示例
-(void)createVoiceRoomWithId:(NSNumber * _Nonnull)roomId
enableRecord:(BOOL)enableRecord
timeout:(int)timeout
success:(void(^)(RTCAudioCreateRoomAnswer * answer))successCallback
fail:(RTCAnswerFailCallBack)failCallback;
加入房间
用户可以使用enterVoiceRoomWithRoomId
接口实现加入已存在的RTC房间。
接口参数说明:
参数
含义
说明
roomId
房间ID
用户待加入的RTC房间ID
timeout
超时时间
请求的超时时间,单位为秒
注意:房间当前默认为开放式房间,任何人都可以直接加入。
在云上曲率控制台有一个配置 “支持多房间” :
- 设置 “是”,那么用户可以加入多个房间,但同时需要设置活跃房间,并接收活跃房间的声音和在活跃房间通话。如果没有设置活跃房间,则不会接收任何房间的声音。
- 设置 “否”,那么用户同一时间只能加入一个房间,接收该房间的声音和在该房间进行通话。
- 设置活跃房间只针对实时语音房间有效。
示例代码
-(void)enterVoiceRoomWithRoomId:(NSNumber * _Nonnull)roomId
timeout:(int)timeout
success:(void(^)(RTCAudioEnterRoomAnswer * answer))successCallback
fail:(RTCAnswerFailCallBack)failCallback;
@property(nonatomic,assign,readonly)int64_t voiceActiveRoom;
-(BOOL)setCurrentVoiceActiveRoom:(int64_t)voiceActiveRoom;//设置活跃房间
@property(nonatomic,assign)BOOL isOpenVoiceSpeak;//默认闭麦
@property(nonatomic,assign)BOOL isOpenVoicePlay;//默认播放房间声音
邀请加入房间
用户可以使用inviteUserIntoVoiceRoomWithId
接口实现邀请其他用户加入该用户已加入的RTC房间。
接口参数说明:
参数
含义
说明
roomId
房间ID
邀请用户加入的RTC房间ID
userIds
用户ID
邀请加入RTC房间的用户ID
timeout
超时时间
邀请请求超时时间,单位为秒
当接收到邀请时,房间外用户会收到 rtcAudioDelegate
处理的 rtcInviteIntoVoiceRoomNotificationWithRoomId
推送消息。如果用户同意,需要调用enterVoiceRoomWithRoomId
接口进入房间。
ackInviteIntoRoom
接口参数说明:
参数
含义
说明
roomId
房间ID
邀请加入的房间ID
userId
用户ID
发起邀请的用户ID
示例代码
-(void)inviteUserIntoVoiceRoomWithId:(NSNumber * _Nonnull)roomId
userIds:(NSArray<NSNumber*>*)userIds
timeout:(int)timeout
success:(void(^)(void))successCallback
fail:(RTCAnswerFailCallBack)failCallback;
-(void)rtcInviteIntoVoiceRoomNotificationWithRoomId:(int64_t)roomId userId:(int64_t)userId;
退出RTC房间
用户可以通过exitVoiceRoomWithId
接口退出已加入的RTC房间。
接口参数说明:
参数
含义
说明
roomId
房间ID
要退出的RTC房间ID
timeout
超时时间
请求的超时时间,单位为秒
代码示例
-(void)exitVoiceRoomWithId:(NSNumber * _Nonnull)roomId
timeout:(int)timeout
success:(void(^)(void))successCallback
fail:(RTCAnswerFailCallBack)failCallback;
获取RTC房间成员列表
RTC房间内成员可以使用getVoiceRoomMembersWithId
接口获取所在RTC房间的成员情况,包括成员数量等。
接口参数说明:
参数
含义
说明
roomId
房间ID
获取房间成员请求的RTC房间ID
timeout
超时时间
请求的超时时间,单位为秒
代码示例
-(void)getVoiceRoomMembersWithId:(NSNumber * _Nonnull)roomId
timeout:(int)timeout
success:(void(^)(RTCAudioRoomMembersAnswer*))successCallback
fail:(RTCAnswerFailCallBack)failCallback;
获取RTC房间成员数量
未加入RTC房间的用户可以使用getVoiceRoomMemberCountWithId
接口获取RTC房间的成员数量。
接口参数说明:
参数
含义
说明
roomId
房间ID
获取房间成员数量的RTC房间ID
timeout
超时时间
请求的超时时间,单位为秒
代码示例
-(void)getVoiceRoomMemberCountWithId:(NSNumber * _Nonnull)roomId
timeout:(int)timeout
success:(void(^)(RTCAudioRoomMemberCount*))successCallback
fail:(RTCAnswerFailCallBack)failCallback;
屏蔽RTC房间中用户语音
shieldUserInVoiceRoomWithId
接口可以屏蔽掉RTC房间内容用户的语音。屏蔽后,该用户的语音不会被房间内其他用户接收到。
接口参数说明:
参数
含义
说明
roomId
房间ID
要屏蔽用户语音的RTC房间ID
userIds
用户ID
屏蔽的用户ID
timeout
超时时间
请求的超时时间,单位为秒
代码示例
-(void)shieldUserInVoiceRoomWithId:(NSNumber * _Nonnull)roomId
userIds:(NSArray<NSNumber*>*)userIds
timeout:(int)timeout
success:(void(^)(void))successCallback
fail:(RTCAnswerFailCallBack)failCallback;
解除屏蔽RTC房间中用户语音
removeShieldUserInVoiceRoomWithId
接口可以解除屏蔽RTC房间内容用户的语音。解除屏蔽后,该用户的语音可以被房间内其他用户接收到。
接口参数说明:
参数
含义
说明
roomId
房间ID
要解除屏蔽用户语音的RTC房间ID
userIds
用户ID
解除屏蔽的用户ID
timeout
超时时间
请求的超时时间,单位为秒
代码示例
-(void)removeShieldUserInVoiceRoomWithId:(NSNumber * _Nonnull)roomId
userIds:(NSArray<NSNumber*>*)userIds
timeout:(int)timeout
success:(void(^)(void))successCallback
fail:(RTCAnswerFailCallBack)failCallback;
本文主要介绍 云上曲率RTC SDK的提供的房间语音通话功能。
功能描述
房间语音通话是指2个及2个以上的用户通过房间开展群体语音通话的场景。云上曲率RTC SDK为开发者提供如下房间语音通话基础内容:
- 创建RTC房间
- 加入RTC房间
- 设置活跃RTC房间
- 邀请加入RTC房间
- 退出RTC房间
- 获取RTC房间成员列表
- 获取RTC房间成员数量
- 屏蔽/解除屏蔽房间用户语音
接口说明
房间事件变更通知
房间管理功能中,当出现房间成员变更、房间解散时,会接收到服务端的通知PUSH。
创建RTC房间
通过createVoiceRoomWithId
接口,用户可以创建RTC房间。创建成功后,会自动加入到房间中。
接口参数说明:
参数 | 含义 | 说明 |
---|---|---|
roomId | 房间ID | 创建的RTC房间ID |
enableRecord | 是否允许录制 | 录制功能,默认为false,不录制。如有录制需求,请联系云上曲率技术人员 |
timeout | 超时时间 | 加入房间请求的超时时间,单位为秒 |
代码示例
-(void)createVoiceRoomWithId:(NSNumber * _Nonnull)roomId
enableRecord:(BOOL)enableRecord
timeout:(int)timeout
success:(void(^)(RTCAudioCreateRoomAnswer * answer))successCallback
fail:(RTCAnswerFailCallBack)failCallback;
加入房间
用户可以使用enterVoiceRoomWithRoomId
接口实现加入已存在的RTC房间。
接口参数说明:
参数 | 含义 | 说明 |
---|---|---|
roomId | 房间ID | 用户待加入的RTC房间ID |
timeout | 超时时间 | 请求的超时时间,单位为秒 |
注意:房间当前默认为开放式房间,任何人都可以直接加入。
在云上曲率控制台有一个配置 “支持多房间” :
- 设置 “是”,那么用户可以加入多个房间,但同时需要设置活跃房间,并接收活跃房间的声音和在活跃房间通话。如果没有设置活跃房间,则不会接收任何房间的声音。
- 设置 “否”,那么用户同一时间只能加入一个房间,接收该房间的声音和在该房间进行通话。
- 设置活跃房间只针对实时语音房间有效。
示例代码
-(void)enterVoiceRoomWithRoomId:(NSNumber * _Nonnull)roomId
timeout:(int)timeout
success:(void(^)(RTCAudioEnterRoomAnswer * answer))successCallback
fail:(RTCAnswerFailCallBack)failCallback;
@property(nonatomic,assign,readonly)int64_t voiceActiveRoom;
-(BOOL)setCurrentVoiceActiveRoom:(int64_t)voiceActiveRoom;//设置活跃房间
@property(nonatomic,assign)BOOL isOpenVoiceSpeak;//默认闭麦
@property(nonatomic,assign)BOOL isOpenVoicePlay;//默认播放房间声音
邀请加入房间
用户可以使用inviteUserIntoVoiceRoomWithId
接口实现邀请其他用户加入该用户已加入的RTC房间。
接口参数说明:
参数 | 含义 | 说明 |
---|---|---|
roomId | 房间ID | 邀请用户加入的RTC房间ID |
userIds | 用户ID | 邀请加入RTC房间的用户ID |
timeout | 超时时间 | 邀请请求超时时间,单位为秒 |
当接收到邀请时,房间外用户会收到 rtcAudioDelegate
处理的 rtcInviteIntoVoiceRoomNotificationWithRoomId
推送消息。如果用户同意,需要调用enterVoiceRoomWithRoomId
接口进入房间。
ackInviteIntoRoom
接口参数说明:
参数 | 含义 | 说明 |
---|---|---|
roomId | 房间ID | 邀请加入的房间ID |
userId | 用户ID | 发起邀请的用户ID |
示例代码
-(void)inviteUserIntoVoiceRoomWithId:(NSNumber * _Nonnull)roomId
userIds:(NSArray<NSNumber*>*)userIds
timeout:(int)timeout
success:(void(^)(void))successCallback
fail:(RTCAnswerFailCallBack)failCallback;
-(void)rtcInviteIntoVoiceRoomNotificationWithRoomId:(int64_t)roomId userId:(int64_t)userId;
退出RTC房间
用户可以通过exitVoiceRoomWithId
接口退出已加入的RTC房间。
接口参数说明:
参数 | 含义 | 说明 |
---|---|---|
roomId | 房间ID | 要退出的RTC房间ID |
timeout | 超时时间 | 请求的超时时间,单位为秒 |
代码示例
-(void)exitVoiceRoomWithId:(NSNumber * _Nonnull)roomId
timeout:(int)timeout
success:(void(^)(void))successCallback
fail:(RTCAnswerFailCallBack)failCallback;
获取RTC房间成员列表
RTC房间内成员可以使用getVoiceRoomMembersWithId
接口获取所在RTC房间的成员情况,包括成员数量等。
接口参数说明:
参数 | 含义 | 说明 |
---|---|---|
roomId | 房间ID | 获取房间成员请求的RTC房间ID |
timeout | 超时时间 | 请求的超时时间,单位为秒 |
代码示例
-(void)getVoiceRoomMembersWithId:(NSNumber * _Nonnull)roomId
timeout:(int)timeout
success:(void(^)(RTCAudioRoomMembersAnswer*))successCallback
fail:(RTCAnswerFailCallBack)failCallback;
获取RTC房间成员数量
未加入RTC房间的用户可以使用getVoiceRoomMemberCountWithId
接口获取RTC房间的成员数量。
接口参数说明:
参数 | 含义 | 说明 |
---|---|---|
roomId | 房间ID | 获取房间成员数量的RTC房间ID |
timeout | 超时时间 | 请求的超时时间,单位为秒 |
代码示例
-(void)getVoiceRoomMemberCountWithId:(NSNumber * _Nonnull)roomId
timeout:(int)timeout
success:(void(^)(RTCAudioRoomMemberCount*))successCallback
fail:(RTCAnswerFailCallBack)failCallback;
屏蔽RTC房间中用户语音
shieldUserInVoiceRoomWithId
接口可以屏蔽掉RTC房间内容用户的语音。屏蔽后,该用户的语音不会被房间内其他用户接收到。
接口参数说明:
参数 | 含义 | 说明 |
---|---|---|
roomId | 房间ID | 要屏蔽用户语音的RTC房间ID |
userIds | 用户ID | 屏蔽的用户ID |
timeout | 超时时间 | 请求的超时时间,单位为秒 |
代码示例
-(void)shieldUserInVoiceRoomWithId:(NSNumber * _Nonnull)roomId
userIds:(NSArray<NSNumber*>*)userIds
timeout:(int)timeout
success:(void(^)(void))successCallback
fail:(RTCAnswerFailCallBack)failCallback;
解除屏蔽RTC房间中用户语音
removeShieldUserInVoiceRoomWithId
接口可以解除屏蔽RTC房间内容用户的语音。解除屏蔽后,该用户的语音可以被房间内其他用户接收到。
接口参数说明:
参数 | 含义 | 说明 |
---|---|---|
roomId | 房间ID | 要解除屏蔽用户语音的RTC房间ID |
userIds | 用户ID | 解除屏蔽的用户ID |
timeout | 超时时间 | 请求的超时时间,单位为秒 |
代码示例
-(void)removeShieldUserInVoiceRoomWithId:(NSNumber * _Nonnull)roomId
userIds:(NSArray<NSNumber*>*)userIds
timeout:(int)timeout
success:(void(^)(void))successCallback
fail:(RTCAnswerFailCallBack)failCallback;