更新时间: 2021-03-23

# 发起通话

使用 RongCallLib 库中 RCCallClient 的发起单人或多人音视频通话。

- (RCCallSession *)startCall:(RCConversationType)conversationType
                    targetId:(NSString *)targetId
                          to:(NSArray *)userIdList
                   mediaType:(RCCallMediaType)type
             sessionDelegate:(id<RCCallSessionDelegate>)delegate
                       extra:(NSString *)extra;
已复制
1
2
3
4
5
6
# 参数说明

输入参数

参数 类型 必填 说明
conversationType RCConversationType (opens new window) 会话类型
targetId NSString 目标会话 ID, 单人呼叫时 targetId 为被叫端UserId, 多人呼叫时 targetId 为群组 ID
userIdList NSArray 被叫用户 ID 列表, 在此数组中仅填写被叫端 UserId, 请不要填写主叫端 UserId, 否则无法发起呼叫
type RCCallMediaType (opens new window) 发起的通话媒体类型
delegate RCCallSessionDelegate (opens new window) 通话监听, 在发起呼叫时需要指定, 否则无法收到此代理的方法回调
extra NSString 发起时需要传递给被叫用户的自定义信息, 可以使用 JSON 内容, 不需要传递自定义信息时可以为 nil

返回参数

返回类型 说明
RCCallSession (opens new window) 通话实体
# 示例代码
self.callSession = [[RCCallClient sharedRCCallClient] startCall:ConversationType_PRIVATE
                                                       targetId:@"用户 ID"
                                                             to:@[@"用户 ID"]
                                                      mediaType:RCCallMediaVideo
                                                sessionDelegate:代理实现类
                                                          extra:nil];
已复制
1
2
3
4
5
6

# 挂断通话

当需要挂断通话时,利用来电代理返回的 RCCallSession 对象调用挂断方法。

- (void)hangup;
已复制
1
# 示例代码
[self.callSession hangup];
已复制
1

# 邀请通话

通话过程中,使用 RCCallSession 邀请其他群成员加入通话,被邀请的群成员会收到 - (void)didReceiveCall:(RCCallSession *)callSession 来电的代理回调,被邀请用户的后续处理与被叫端收到来电的处理相同。

第一个邀请方法 inviteRemoteUsers:mediaType: 所有被邀请的用户都可以正常收发音视频数据。

- (void)inviteRemoteUsers:(NSArray *)userIdList mediaType:(RCCallMediaType)type;
已复制
1
# 参数说明

输入参数

参数 类型 必填 说明
userIdList NSArray 用户ID列表
type RCCallMediaType (opens new window) 媒体类型
# 示例代码
[self.callSession inviteRemoteUsers:@[@"用户ID", @"用户ID", @"用户ID"] mediaType:RCCallMediaVideo];
已复制
1

文档是否解决您的问题 ?

如果遇到产品相关问题,您可 提交工单 寻求帮助