Flutter 上实现 WebRTC | 掘金技术征文

计向晨
2023-12-01

最近正纠结如何在 Flutter 上实现 webRTC 的功能,而 Flutter 在原生支持上,远不如 React Native 方便,而自己实现是不可能的,这辈子都不可能的,最后让我终于在 github 上发现了这个 AgoraIO/Flutter-SDK ,顺藤摸瓜发现原来是一家叫声网的 SDK ,它家的 webRTC 系列居然是全平台制霸的,妥了!!!

感受下,加上 Flutter 版本,要知道现在好多大企业平台都没有 Flutter 甚至 React Native 版本的 SDK,残念啊,连阿里云日志都要自己写一遍插件····

这时候我不禁好奇,是什么勇气让 AgoraIO 兼容开发这么多平台的?

查找源码发现,原理 AgoraIO 并没有在 Flutter 上单独实现一个版本,而是通过 FlutterPlatformView 机制把 Andriod 和 IOS 的功能继承进来,而在 Android 和 IOS 上的关键代码,都是通过 C++ 实现的,这样保证了可以在多个平台上,通过交叉编译的方式实现核心逻辑的跨平台,机智机智啊。

不过 PlatformView 在 Android 上的性能让人担忧啊。

接下来就是接入了,首先我们需要在开发者中心注册一个账号,然后通创建一个应用

通过应用我们可以拿到一个 appid ,标准套路,之后就可以直接使用 AgoraIO 的服务了,同时 AgoraIO 还提供各类的数据分析,em...还是标准套路。

之后我们就可以通过 pub 下载 AgoraIO/Flutter-SDK 了,推荐然先通过 Sdk 自带的 Demo 测试一波了。

Demo 这里有个小问题,在 Flutter 中没有做权限申请处理,所有需要自己去设置中打开,而且 Flutter Demo 中只做了加入房间,如果需要预览要自己加上带啊嘛,所以在同步显示上我用了 Android 的 DEMO。

后面的使用方式就不多介绍了,真的值得安利,毕竟让程序员从0开始完成一套 WebRTC 是不科学的,相信后台的工作量会更痛苦吧,不管怎么说,流程是跑通了,可行性也没问题,那么接下来就是如何说服老板去充值了。

Agora SDK 使用体验征文大赛 | 掘金技术征文,征文活动正在进行中

 类似资料: