我最近在使用 Agora SDK 开发一个视频会议软件,在开发各种视频会议的细节功能时,我不由得疑惑。为什么一定要开发会议当中的一些基础功能 —— 比如静音、踢人、设置设备、会议聊天。
当然, 这些东西开发起来并不复杂 —— 你只需要基于 Agora SDK 就可以开发出来,只是我在想,这些非常基础的功能,能否有一些现成的功能 (是的,我非常懒)。
所以,我在想,能否有一个 SDK ,可以帮助我简化一下视频会议的开发(视频会议算是一个非常普适/标准)。
开源项目: Meeting Kit
Features
- 开箱即用的视频会议功能
- 静音 / 设置音频设备
- 视频分享 / 设置视频设备
- 屏幕分享 / 自定义屏幕分享设备类型(包含默认值,可自定义)
- 虚拟背景功能 / 支持自定义虚拟背景 Template
- 信号状态链接功能
- 自定义功能区
- 不同布局模式(可参考腾讯会议、Zoom 等视频软件)
- 录屏功能
- 配置 APPID & Token 即可初始化一个标准的视频会议应用。
- 自定义各组件样式
- 支持导出部分功能作为一个单独的组件在外部使用(比如需要传入 Client 和 Track)
项目的长期发展
- 支持底层替换
- 可以支持 Agora、AWS、腾讯云、自建 WebRTC 中转节点(Premium Plugin?)
- 支持多种常用开发方案
- 或许可以作为一个独立的 Organization,下辖 React、Vue、Flutter、iOS、Android 插件。
- 支持更多功能的插件
- 比如美颜,可能需要 WebAssembly
- 比如 Memoji
- 产出课程 (Premium)
- …
现有项目对比
- Agora-RTC-React/Agora-RTM-React:这两个项目虽然简化了 Agora SDK 在 React 生态下的使用,但对于开发者来说这些也仅仅是简化了开发,对于开箱即用的应用而言,还是有限。
Meeting Kit 最终的形式是一套 组件库,而不是一个完整应用吧。类似于 weui库、elementUI 等组件库吧?
核心:每个组件包括业务逻辑 + UI。
比如 静音 组件,它有两种状态,静音与非静音,基于这两种状态会有逻辑和前端的交互UI,逻辑最终是要和选择的音视频厂商的SDK打交道。
音视频厂商:基础的音视频服务器。
是的。是一个可以快速嵌入到业务系统的方案。比如我现在有个棋牌应用,我希望开一个语音房。那我接入一个组件,并关闭视频功能,就可以实现语音房的能力。