主叫方
发起通话
使用 RongCallLib
库中 RCCallClient
的发起单人或多人音视频通话。多人通话场景所有通话者必须在一个群组内。
- (RCCallSession *)startCall:(RCConversationType)conversationType
targetId:(NSString *)targetId
to:(NSArray *)userIdList
mediaType:(RCCallMediaType)type
sessionDelegate:(id<RCCallSessionDelegate>)delegate
extra:(NSString *)extra;
-
参数说明:
参数 类型 必填 说明 conversationType RCConversationType 是 会话类型 targetId NSString 是 目标会话 ID ,单人呼叫时 targetId 为被叫端 UserID,多人呼叫时 targetId 为群组 ID userIdList NSArray 是 被叫用户 ID 列表,在此数组中仅填写被叫端 UserID,请不要填写主叫端 UserID,否则无法发起呼叫 type RCCallMediaType 是 发起的通话媒体类型 delegate RCCallSessionDelegate 是 通话监听,在发起呼叫时需要指定, 否则无法收到此代理的方法回调 extra NSString 否 发起时需要传递给被叫用户的自定义信息,可以使用 JSON 内容,不需要传递自定义信息时可以为 nil
返回参数
返回类型 | 说明 |
---|---|
RCCallSession | 通话实体 |
-
示例代码:
self.callSession = [[RCCallClient sharedRCCallClient] startCall:ConversationType_PRIVATE
targetId:@"用户 ID"
to:@[@"用户 ID"]
mediaType:RCCallMediaVideo
sessionDelegate:代理实现类
extra:nil];
挂断通话
当需要挂断通话时,利用来电代理返回的 RCCallSession
对象调用挂断方法。
-
示例代码:
[self.callSession hangup];
邀请通话
通话过程中,使用 RCCallSession
邀请其他群成员加入通话,被邀请的群成员会收到 - (void)didReceiveCall:(RCCallSession *)callSession
来电的代理回调,被邀请用户的后续处理与被叫端收到来电的处理相同。
第一个邀请方法 inviteRemoteUsers:mediaType:
所有被邀请的用户都可以正常收发音视频数据。
- (void)inviteRemoteUsers:(NSArray *)userIdList mediaType:(RCCallMediaType)type;
-
参数说明:
参数 类型 必填 说明 userIdList NSArray 是 用户ID列表 type RCCallMediaType 是 媒体类型 -
示例代码:
[self.callSession inviteRemoteUsers:@[@"用户ID", @"用户ID", @"用户ID"] mediaType:RCCallMediaVideo];