发起通话
注意
发起通话之前,必须先初始化 IMKit SDK 和连接服务器,详细内容可以参考 IMKit SDK 集成文档。
使用 CallKit 可以通过两种方式发起通话:
-
在聊天界面输入扩展的加号内,点击音频通话/视频通话按钮直接发送通话。
-
调用 RCCall 类中的以下方法发起通话。
发起单人通话
// RCCall Class
/*!
发起单人通话
@param targetId 对方的用户ID
@param mediaType 使用的媒体类型
*/
- (void)startSingleCall:(NSString *)targetId
mediaType:(RCCallMediaType)mediaType;
选择成员并发起多人通话
// RCCall Class
/*!
选择成员并发起多人通话
@param conversationType 会话类型
@param targetId 会话目标ID
@param mediaType 使用的媒体类型
@discussion 此方法会先弹出选择成员界面,选择完成后再会发起通话。目前支持的会话类型有群组。
@warning 如果您需要在群组中调用此接口发起多人会话,需要设置并实现groupMemberDataSource。
*/
- (void)startMultiCall:(RCConversationType)conversationType
targetId:(NSString *)targetId
mediaType:(RCCallMediaType)mediaType;
注意
调用startMultiCall:targetId:mediaType:
之前,需要设置 RCIM 的 groupMemberDataSource
委托并实现 RCIMGroupMemberDataSource
协议。
SDK 在选择群组成员的时候,会调用 getAllMembersOfGroup:result:
接口获取群成员列表并显示,开发者需要在此方法中调用 resultBlock
向 SDK 返回群组成员 ID。
直接发起多人通话
// RCCall Class
/*!
直接发起多人通话
@param conversationType 会话类型
@param targetId 会话目标ID
@param mediaType 使用的媒体类型
@param userIdList 邀请的用户ID列表
@discussion 此方法会直接发起通话。目前支持的会话类型有群组。
@warning 您需要设置并实现groupMemberDataSource才能加人。
*/
- (void)startMultiCallViewController:(RCConversationType)conversationType
targetId:(NSString *)targetId
mediaType:(RCCallMediaType)mediaType
userIdList:(NSArray *)userIdList;