发起通话

注意

发起通话之前,必须先初始化 IMKit SDK 和连接服务器,详细内容可以参考 IMKit SDK 集成文档。

使用 CallKit 可以通过两种方式发起通话:

  1. 在聊天界面输入扩展的加号内,点击音频通话/视频通话按钮直接发送通话。

  2. 调用 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;