多人通话
本文介绍了多人通话的主要功能,包括如何发起多人通话、单人通话转为多人通话等。
注意
因为 CallPlus for HarmonyOS 多人通话与一对一通话流程相似,本文仅介绍多人通话与一对一通话有差异的使用方法。我们建议您先按照一对一通话实现完整的通话流程。
发起多人通话
startCallWithParams 方法,支持在发起呼叫时通过配置推送属性自定义远程推送标题等属性。支持携带自定义数据。如不需要配置推送属性,可选择不传。
如需直接发起多人通话,请在 startCallWithParams 方法中传入多个远端用户 ID,并设置通话类型为 RCCallPlusType.MULTI。媒体类型可为视频或音频。您可以创建最多 16 名视频参与者的多人通话,或最多 32 名音频参与者的多人通话。
该方法内部为异步执行,结果在方法返回值中获取。被叫用户会通过 ICallPlusEventListener 协议的 onReceivedCall 方法收到来电通知。
TypeScript
// CallPlusInstance 是默认 RCCallPlusClient 对外导出的实例
// _callPlusClient 为具体实现类声明的私有属性,后续示例代码都使用该变量。
private _callPlusClient: RCCallPlusClient = CallPlusInstance
...
this._callPlusClient.startCallWithParams({
userIds: ['userId1', 'userId2'],
type: RCCallPlusType.MULTI,
mediaType: RCCallPlusMediaType.AUDIO,
extra: 'extra',
syncData: 'syncData'
}).then((result) => {
if (result.code === RCCallPlusCode.SUCCESS) {
console.log('发起通话成功');
} else {
console.log('发起通话失败', result.code)
}
});
接听多人通话
注意
- 被叫用户必须先设置 ICallPlusEventListener 代理,并实现 onReceivedCall 方法。
startCallWithParams方法和onReceivedCall:回调参数包含extra字段,用户可以用来传递自定义数据。
被叫用户收到来电通知后,可以选择接听或拒绝来电。应用程序可以通过 RCCallPlusSession 的 getCallId 方法获取通话 ID,可以通过 getCallType 方法查询通话类型是否为多人通话。
- 接听来电
TypeScript
this._callPlusClient.accept('callId').then((result) => {
if (result.code === RCCallPlusCode.SUCCESS) {
console.log('接听成功');
} else {
console.log('接听失败', result.code);
}
});
- 挂断来电
TypeScript
this._callPlusClient.hangup('callId').then((result) => {
if (result.code === RCCallPlusCode.SUCCESS) {
console.log('挂断成功');
} else {
console.log('挂断失败', result.code);
}
});