更新记录

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:

account:

token:

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:

token:

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的多端登录

隐私、权限声明

1. 本插件需要申请的系统权限列表:

"android.permission.ACCESS_NETWORK_STATE" - 网络状态权限 "android.permission.CAMERA" - 相机权限 "android.permission.RECORD_AUDIO" -录音权限 "android.permission.FOREGROUND_SERVICE" -后台服务权限 "android.permission.SYSTEM_ALERT_WINDOW" -弹窗权限

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问