多人通话
本文介绍了多人通话的主要功能,包括如何发起多人通话、单人通话转为多人通话等。
注意
因为 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:挂断电话的回调