Flutter Agora 全功能视频通话模块

技术栈

客户端: Dart, Flutter

服务器: Firebase firestore, Google cloud functions

技术

*Bloc 模式结合 Cubit 状态管理

*全实时数据消费(用户-历史-视频通话状态)

*所有通话状态的实时处理(呼叫中 – 接听 – 拒绝 – 取消 – 忙碌 – 未接 – 结束)

*整洁的代码和架构

*UI=>Cubit=>API 数据流

*Dio 包用于处理(生成 agora token – FCM)API

*FCM 通知(处理终止模式下的来电)

使用 nodejs 构建 token 生成器: https://www.youtube.com/watch?v=KcLypppA2IQ&ab_channel=Agora

演示视频 : https://www.youtube.com/watch?v=Ond-VhB11h4

App Screenshot

App Screenshot

App Screenshot

App Screenshot

入门

*创建一个新的 firebase 项目并设置 firestore,添加虚拟用户数据

*复制 FCM 授权密钥并粘贴到 constants.dart 文件中的 fcmKey 变量

*创建一个 agora 新项目并生成 token、channel name 以供测试,并将它们粘贴到 constants.dart 文件中的 (agoraAppId-agoraTestChannelName-agoraTestToken) 变量

GitHub

查看 Github