实现音视频会议
本教程是为了让新手快速了解融云音视频微信小程序 RTCLib SDK(@rongcloud/plugin-wechat-rtc)。
融云 RTCLib SDK 在小程序平台仅支持音视频会议,不支持音视频直播。
微信音视频小程序开发须知
单个房间内最多 16 人同时进行音频通话(因手机硬件配置通话人数会有上线浮动)。
- 音视频小程序 SDK 设计特点:融云音视频小程序 SDK 基于微信的小程序框架提供的原生媒体组件封装了两个自定义组件。开发者仅需引入自定义组件、配合发布和订阅接口,即可完成小程序的基础音视频功能。
rc-livepusher
:融云自定义的音视频推流组件,封装了微信的实时音视频录制原生组件 live-pusher。rc-liveplayer
:融云自定义的音视频拉流组件,封装了微信的实时音视频播放原生组件 live-player。
- 微信原生组件限制:微信小程序的
live-pusher
、live-player
是由客户端创建的原 生组件(native-component)。在开始开发前,请确保您了解微信原生组件的功能及限制(详见微信文档原生组件的使用限制)。建议您在使用到原生组件时尽量在真机上进行调试,确保小程序音视频效果稳定可靠。 - 微信类目审核:请确保您的小程序已通过支持
live-pusher
、live-player
两个媒体组件的类目审核,且在微信小程序控制台开通了live-pusher
和live-player
的权限。 - 设备权限要求:使用小程序录制音视频前,必须授于摄像头和麦克风权限。详见微信小程序用户信息授权文档: https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/authorize.html
前置条件
- 创建融云开发者账号,获取 App Key。注册成功后,融云控制台会默认自动创建您的首个应用,默认生成开发环境下的 App Key,使用国内数据中心。注意:同一个应用的开发环境与生产环境提供不同的 App Key,两个环境之间数据隔离。
- 已经完成 开通音视频服务,请开通音视频通话服务。开发环境下可免费开通,每个应用均可享有 10000 分钟免费体验时长,免费体验时长用完即止。生产环境下需要先预存费用才可开通。服务开通后最长 15 分钟生效。详见开通音视频服务。
- 已经完成 开通小程序服务。
Demo 项目
融云提供了微信小程序 Demo 项目。
https://downloads.rongcloud.cn/Wechat_RTCLib_Demo_v5.1.0.zip
步骤 1:导入 SDK
小程序 RTC SDK 强依赖小程序 IM SDK,使用 RTC SDK 前必须引入 IM SDK。
您可以使用 NPM 安装 RTC SDK 与其依赖的 IMLib SDK。
-
安装 5.X 版本 IMLib。
jsnpm install @rongcloud/engine@latest @rongcloud/imlib-next@latest -S
@rongcloud/engine @rongcloud/imlib-next@latest -
安装 RTCLib。
jsnpm install @rongcloud/plugin-wechat-rtc
@rongcloud/plugin-wechat-rtc RTCLib(
@rongcloud/plugin-wechat-rtc
)安装过程中,会将内部的rcComponents
移动至node_modules
下。rcComponents
文件夹中存放了推、拉流自定义组件rc-livepusher
和rc-liveplayer
。rcComponents
文件夹目录结构如下:typescript|- rcComponents/
|- rc-liveplayer.js
|- rc-liveplayer.json
|- rc-liveplayer.wxml
|- rc-liveplayer.wxss
|- rc-livepusher.js
|- rc-livepusher.json
|- rc-livepusher.wxml
|- rc-livepusher.wxss -
依赖包安装完毕后,在小程序开发者工具的菜单中,寻找 "工具 -> 构建 npm" 选项,对依赖的 npm 包进行小程序所需的二次编译。
-
全部下载安装完成后,即可在代码中导入 IMLib 与 RTCLib 库。
jsconst RongIMLib = require('@rongcloud/imlib-next');
const RongRTCLib = require('@rongcloud/plugin-wechat-rtc');
步骤 2:引入推、拉流自定义组件
开发者仅需引入融云基于微信的小程序框架原生媒体组件封装的自定义推拉流组件(rc-livepusher
与 rc-livepusher
)、配合发布和订阅接口,即可完成小程序的基础音视频功能。
如需在您的小程序的某页面中使用自定义推、拉流组件,您需要在该页面同名的配置文件中增加以下配置:
{
"usingComponents": {
"rc-livepusher": "../../rcComponents/rc-livepusher",
"rc-liveplayer": "../../rcComponents/rc-liveplayer"
}
}
引入组件示例:假设 pages
目录下包含 main
目录,按照微信的开发框架要求,main
目录下会包含如下文件。
|- pages/
|- main/
|- main.js
|- main.json // 页面配置文件,请在该页面中增加配置
|- main.wxml
|- main.wxss
如果要在 main 页面(main.wxml
)中使用自定义推拉流组件,您需要该页面的配置文件(main.json
)中增加上面的配置。
Uniapp 开发者可参考 Uniapp 项目配置 文档。