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