多人通话
本文介绍多人通话的主要功能,包括如何发起多人通话、以及将一对一通话转为多人通话。
注意
由于 CallPlus for Android 的多人通话与一对一通话流程相似,本文仅介绍与一对一通话的差异。建议先按一对一通话实现完整流程。
发起多人通话
注意
自 CallPlus 2.0 起,新增 startCall 重载方法,支持在发起呼叫时通过配置推送属性自定义远程推送标题等属性,并支持携带自定义数据。
如需直接发起多人通话,请在 startCall 中传入一个或多个远端用户 ID,并将通话类型设置为 RCCallPlusType.MULTI。媒体类型可为视频或音频。最多支持 16 名视频参与者或 32 名音频参与者。
该方法为异步执行。调用结果在 IRCCallPlusResultListener 的 [onStartCall] 回调中获取;被叫用户通过 IRCCallPlusEventListener 的 onReceivedCall(RCCallPlusSession callSession) 接收来电通知。
List<String> userIds = new ArrayList<>();
userIds.add(remoteUserId);
RCCallPlusPushConfig pushConfig = RCCallPlusPushConfig.Builder
.create()
.build();
RCCallPlusClient.getInstance().startCall(userIds, RCCallPlusType.MULTI, RCCallPlusMediaType.VIDEO, pushConfig, "extra");
接听多人通话
重要
非兼容性变更:自 CallPlus 2.0 起,
onReceivedCall方法发生非兼容变更,新的方法会携带extra字段。升级时请修改相关代码。
注意
被叫用户必须已注册 IRCCallPlusEventListener,并实现
onReceivedCall(RCCallPlusSession callSession)。被叫用户可通过与融云的 IM 连接或第三方厂商的离线推送接收来电通知。要通过离线推送接收来电通知,App 必须已集成第三方厂商推送,详见推送 2.0 集成概述。
被叫用户收到来电通知后,可选择接听或拒绝。可通过 RCCallPlusSession#getCallId() 获取通话 ID,通过 getCallType() 判断是否为多人通话。
- 接听来电:调用
RCCallPlusClient.getInstance().accept(callId),或调用RCCallPlusClient.getInstance().joinCall()。 - 挂断来电:调用
RCCallPlusClient.getInstance().hangup(callId)。
接听方法与挂断方法在 SDK 内部为异步执行,调用结果通过 IRCCallPlusResultListener 的以下回调获取:
- [onAccept]:接听(
accept)的回调 - [onJoinCall]:加入通话(
joinCall)的回调 - [onHangup]:挂断的回调
邀请他人加入通话
您可以邀请其他用户加入多人通话。对方可以接受或拒绝邀请。
注意
CallPlus 暂不支持取消邀请。