更新记录
1.0.0(2024-05-29) 下载此版本
1V1音视频呼叫
平台兼容性
阿里云 | 腾讯云 | 支付宝云 |
---|---|---|
√ | √ | √ |
云函数类插件通用教程
使用云函数类插件的前提是:使用HBuilderX 2.9+
本文档介绍基于uni-id账号体系快速集成云端一体的网易云信 RTC 音视频通话系统。
简介
网易云信音视频呼叫是网易云信推出的含 UI 组件,您只需要几行代码,基于uni-id账号就可以快速实现音视频呼叫,在 App 中添加包括呼叫、接通、拒接、以及通话中音频和视频的开关控制功能,并包含呼叫的 UI 界面。
呼叫组件基于云信信令、音视频通话 2.0 和 IM 即时通讯产品封装的融合性场景组件,简化了呼叫流程,将呼叫功能以 UI 组件化的形式提供给客户,提高接入效率、降低使用成本。
支持的功能如下表所示。
功能 |
描述 |
---|---|
自定义 UI | 开发者可以自行设计通话和呼叫页面 UI。 |
音视频呼叫 | App 通过此功能通知被叫用户呼叫请求,呼叫请求类型包括音频和视频呼叫。 |
音视频通话 | 接通后可依照呼叫类型进行实时通话。 |
音视频控制 | 通话过程中可以控制本端音频或视频的开关,以及摄像头方向等。 |
话单 | 每次通话结束后都会收到对应的话单消息,标记本次通话是否接通以及通话时间、类型等数据。 |
限时优惠活动
如果您在 Dcloud 平台下载了该组件,您可[登录云信控制台(Dcloud专属链接)]()进行开通与管理。
此外通过以上 Dcloud 平台的专属链接成功注册账号并开通服务的用户,云信将提供特别的优惠价,可在开通账号后联系云信销售或技术支持。
Demo 体验
平台 | 二维码 |
---|---|
Android | |
iOS |
Demo 效果图
技术支持
网易云信提供多种服务,包括客服、技术支持、热线服务、全流程数据监控等,建议扫码添加我们的技术支持,协助接入、测试以及定制需求。 | 在线咨询 | 电话咨询 | |
---|---|---|---|
点击在线咨询 | 4009-000-123 |
使用uniCloud产生的费用说明
yunxin-rtc-call本身并不收费,实际使用中需要依赖uniCloud云服务,会产生费用;而uniCloud的价格很实惠:
调用10000次云函数仅需0.0133元 调用10000次数据库查询仅需0.015元 更多计费参考:阿里云版uniCloud按量计费文档
准备工作
1. 申请 AppKey
用户在使用本插件之前需要获取云信的AppKey,AppKey 申请的具体流程请参见 创建应用并获取AppKey。
2. 获取账号
本系统的服务端代码托管在uniCloud下,账户体系是uni-id 4.0+的,代码是开源的,开发者可以根据需要修改成自己的账号体系。
3. 开通服务
使用音视频呼叫(呼叫组件)之前,需要开通部分能力,开通的具体流程请参见 开通服务。
4. 部署到uniCloud 对项目根目录uniCloud点右键,选择“云服务空间初始化向导” 按提示部署项目,其中使用到了公共模块common,需要在目录uniCloud/common右键 -> 选择“公布公共模块” -> 点击确定,完成配置。
5.开发环境
- HBuilderX
- sass(sass-loader 版本 <= 10.1.1)
- node(16.0.0 <= node 版本 <= 17.0.0, 推荐使用 Node.js 官方 LTS 版本 16.17.0)
- npm(版本请与 node 版本匹配)
目录结构
uni_modules
├─其他module
└─yunxin-rtc-call
├── readme.md
└── uniCloud
├── cloudfunctions
│ ├── common
│ │ └── utils 公共库:checksum的生成等方法
│ │ ├── index.js
│ │ └── package.json
│ └── co1 云信账号和uni账号映射
│ ├── index.obj.js
│ └── package.json
└── database
快速接入
说明
本项目为云端一体的,基于uni-id实现的音视频呼叫系统。
步骤1 配置 AppKey
传入方式详见下方 initConfig 接口。
步骤2 注册并登录账号
调用 registerAndLogin 接口登录账号。
步骤3 开始使用
基于以上步骤,您可以调用 CallUIKit 接口实现自身逻辑,例如调用 UI 接口 toCallPage 跳转到呼叫页面。
完整步骤
initConfig() -> registerAndLogin() -> toCallPage()
插件接口
initConfig
配置初始化参数
initConfig({params}, callback(ret))
params
appKey:
- 类型:String
- 描述:云信IM应用APPKEY,获取方式请参见 创建应用并获取AppKey。
account:
- 类型:String
- 描述:账号ID,获取方法请参见 uni-id用户体系。
token:
- 类型:String
- 描述:账号Token,uni-id用户体系。
apnsCername:
- 类型:String
- 描述:(可选值)云信 Apns 推送证书名
pkCername:
- 类型:String
- 描述:(可选值)云信 PushKit 推送证书名
language
- 类型:String
- 描述:(可选值)语言,zh为中文,en为英文,不填默认跟随系统
enableFloatingWindow
- 类型:布尔类型
- 描述:(可选值)是否开启悬浮窗,true开启,false不开启
enableAutoFloatingWindowWhenHome
- 类型:布尔类型
- 描述:(可选值)是否开启回到桌面自动开启悬浮窗,true开启,false不开启
enableForegroundService
- 类型:布尔类型
- 描述:(可选值)是否开启前台服务,true开启,false不开启
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
code:200, // Int类型;失败初始化返回 code(登录成功返回 200)
msg:'' // String 类型;失败初始化接口信息
}
可用性
- iOS系统:可提供的 11 及更高版本
- Android系统:可提供的 21 及更高版本
registerAndLogin
登录
login({params}, callback(ret))
params
appKey:
- 类型:String
- 描述:云信应用的 AppKey
account:
- 类型:String
- 描述:账号ID,获取方法请参见 uni-id用户体系。。
token:
- 类型:String
- 描述:账号token,获取方法请参见 uni-id用户体系。。
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
code:200, // Int类型;失败登录返回 code(登录成功返回 200)
msg:'', // String 类型;失败登录接口信息
loginInfo:{ // 登录信息
account:"123456", // String 类型;账号ID
token:"456789" // String 类型;账号token
}
}
可用性
- iOS系统:可提供的 11 及更高版本
- Android系统:可提供的 21 及更高版本
logout
登出 IM
logout(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
code:200, // Int 类型;登出失败返回 code(登出成功返回 200)
msg:'' // String 类型;登出失败信息
}
可用性
- iOS系统:可提供的 11及更高版本
- Android系统:可提供的 21 及更高版本
toCallPage
跳转到呼叫页面(主叫)
toCallPage({params})
params
remoteUserAccid:
- 类型:String
- 描述:被叫 accid,即 account 账号
currentUserAccid:
- 类型:String
- 描述:主叫 accid
type:
- 类型:Int
- 描述:呼叫类型(1: 音频呼叫, 2: 视频呼叫)
可用性
- iOS系统:可提供的 11 及更高版本
- Android系统:可提供的 21 及更高版本
常见问题
同时集成呼叫组件和推送插件后无法正常呼叫
需要在控制台开通IM的多端登录