最近正纠结如何在 Flutter 上实现 webRTC 的功能,而 Flutter 在原生支持上,远不如 React Native 方便,而自己实现是不可能的,这辈子都不可能的,最后让我终于在 github 上发现了这个 AgoraIO/Flutter-SDK ,顺藤摸瓜发现原来是一家叫声网的 SDK ,它家的 webRTC 系列居然是全平台制霸的,妥了!!!
感受下,加上 Flutter 版本,要知道现在好多大企业平台都没有 Flutter 甚至 React Native 版本的 SDK,残念啊,连阿里云日志都要自己写一遍插件····
这时候我不禁好奇,是什么勇气让 AgoraIO 兼容开发这么多平台的?
查找源码发现,原理 AgoraIO 并没有在 Flutter
上单独实现一个版本,而是通过 Flutter
的 PlatformView
机制把 Andriod 和 IOS 的功能继承进来,而在 Android 和 IOS 上的关键代码,都是通过 C++ 实现的,这样保证了可以在多个平台上,通过交叉编译的方式实现核心逻辑的跨平台,机智机智啊。