呼叫组件概述
背景信息
为了方便开发者快速接入音视频通话 2.0,提升应用的研发效率,音视频通话 2.0 和信令产品携手为您打造业务层呼叫组件 NERTCCallkit,组件中集成了音视频通话 2.0 和信令的多项基础功能,全方位提升接入效率。
NERTCCallkit 呼叫组件对外开源,通过音视频通信 2.0 SDK 和信令 SDK 分别实现音视频通话和呼叫邀请机制。
音视频通话 2.0:网易云信基于网易多年的即时通讯和实时音视频通话能力的技术积累,稳定流畅、高品质、全平台的点对点和多人实时音视频通话服务。
信令:信令 SDK 是网易云信提供的稳定可靠的信令通道,可用于搭建音视频场景下的呼叫邀请机制。
组件下载
您可以根据需求下载对应平台的组件源码。
Android | iOS | Windows | Web |
---|---|---|---|
下载 Android 呼叫组件 | 下载 iOS 呼叫组件 | 下载 Windows 呼叫组件 | 下载 Web 呼叫组件 |
开通相关服务
使用呼叫组件之前,请根据您的需求开通对应的服务。
产品 | 说明 |
---|---|
IM 即时通讯 | 在控制台创建应用之后,系统默认为您开通 IM 免费版。应用测试阶段可暂时使用免费版,但免费版有账号和消息限制,应用正式上线前,请开通 IM 正式版。 |
音视频通话 2.0 | 使用呼叫组件之前,请确认您已开通了音视频通话 2.0 产品。 注意:若您需要使用话单功能,请联系销售或技术支持人员协助开通。 |
信令 | 信令产品用于搭建音视频场景下的呼叫邀请机制。在使用呼叫组件之前,请确认您已开通了信令产品。 |
功能概述
- 一对一呼叫:
- 支持一对一音频或视频呼叫。
- 可接受呼叫或拒绝呼叫。
- 随时挂断呼叫。
- 多人音视频聊天:
- 支持发起音视频群聊邀请。
- 用户可接受邀请或拒绝邀请。
- 随时挂断呼叫或退出群聊。
组件技术架构
呼叫组件客户端 API 概览
支持以下组件层接口,同时支持应用直接访问 RTC 接口。
组件层需要区分语音通话和视频通话两个场景,Call 接口中增加语音、视频参数。
多人场景不封装在组件中,在应用层实现,目前即时通讯也是此方案。
接口名称 | 说明 | 参数 |
---|---|---|
setupAppKey | 初始化。使用呼叫组件功能前,必须初始化。 | appKey:应用的 APP Key。 options,包括: useRtcSafeMode:是否使用安全模式,默认为true,即使用安全模式。 apnsCerName:APNS 推送证书(仅 iOS端需要配置)。 voIPCerName:pushkit 证书(仅 iOS端需要配置)。 以下参数仅适用于 Web 端: |
login | 登录 IM,所有功能需要先进行登录后才能使用。 | account:IM 账号 token:IM 密码 completion:回调 |
logout | 登出 IM。 | completion:回调 |
call | 开始呼叫。 | userID:用户 userID type:音频/视频 completion:回调 |
groupCall | 群聊呼叫。 | userIDs: userID 列表 type:音频/视频 completion(error):回调 |
cancel | 取消呼叫(1对1)。 | completion:回调 |
accept | 接受呼叫。 | completion:回调 |
reject | 拒绝呼叫。 | completion:回调 |
hangup | 挂断,同时挂断其他人。 | completion:回调 |
leave | 离开,不影响通话中的其他人。 | completion:回调 |
setupLocalView | 设置自己画面。 | view:视图 |
setupRemoteView | 设置其他用户画面。 | view:视图 userID:userID(统一类型) |
enableLocalVideo | 开启/关闭摄像头。 | enabled:是否开启 |
muteLocalAudio | 开启/关闭麦克风。 | mute:是否静音 |
switchCamera | 切换摄像头。 | - |
getDevices(仅Web端) | 获取设备列表。 | data:设备列表,包括扬声器、麦克风和摄像头 |
switchDevice(仅Web端) | 切换设备。 | type:设备类型 deviceId:设备Id |
switchCallType | 视频通话/音频通话相互切换。 | type: 音频/视频(视频预留,暂不支持) completion: 回调 |
setAudioMute | 禁言指定用户。 | mute: 是否静音 userID: 需要静音的用户 accID |
addDelegate(listener, callback) | 添加代理,接收回调。 | delegage:代理 |
回调接口概览
NERtcCallKitDelegate 回调接口列表如下:
方法名 | 说明 | 参数 |
---|---|---|
onInvited | 收到对方邀请 | invitor:发起人 userIDs:房间中除 invitor 之外所有人的 ID isFromGroup:是否为群聊呼叫 groupID: 透传 groupCall 传入的 groupID,点对点通话则为 null type:音频/视频 |
onUserEnter | 对方加入通话 | userID |
onUserReject | 对方拒绝邀请 | userID |
onUserCancel | 对方取消邀请(1对1) | userID |
onUserBusy | 对方忙线 | userID |
onUserLeave | 对方退出群聊房间 | userID |
onUserAccept | 用户接受邀请 | userID |
onUserDisconnect | 用户异常情况断开的回调 | userID |
onOtherClientAccept | 当前邀请被其他在线的端接收的回调 | - |
onOtherClientReject | 当前邀请被其他在线的端拒绝的回调 | - |
onUserNetworkQuality | 网络状态回调 | stats: 回调 map,其中 key 为 accid,value 为NERtcNetworkQualityStats 对象 |
onCallTypeChange | 音视频通话类型切换的回调,仅限点对点。 | type: 音频/视频 |
onDisconnect | 音视频断开回调上抛 | reason: 断开原因。Web端暂不支持此参数。 |
onCallingTimeOut | 邀请超时 | - |
onCameraAvailable | 开启/关闭相机 | userID:用户ID available:摄像头是否可用 |
onAudioAvailable | 开启/关闭麦克风 | userID:用户 IDavailable:摄像头是否可用 |
onCallEnd | 通话结束 | - |
onError | 不影响流程的error | error |
本篇文档内容是否对您有帮助?


此文档对你是否有帮助
×


×