RTC (Real-Time Communication) 做为实时通信领域的"新贵",在互动直播、远程控制、多人视频会议、屏幕共享等领域广受好评,若是你还不了解 RTC ,Take it easy ,本文将带你用10分钟的时间,快速体验实现一个“多人视频聊天”需求。前端
没错,就是这么简单任性。以下简单看看 Agora SDK 加持下的效果。git
相较于 RTC
,更多人了解到的应该是 WebRTC
, WebRTC
属于 RTC
的一个子集,它先是由谷歌开源,又经历了 W3C 的更新,才成为了现在广为人知的 WebRTC 1.0
。github
起初 WebRTC
设计的初衷,只是为了解决两个客户端间链接发送媒体数据,也就是所谓的P2P的通讯,因此大多数的状况下不须要依赖于服务器的中转,可是随着业务发展,多对多的广播也开始被支持。后端
可是 WebRTC
的名称容易让人产生了误解,不少时候你们一直认为WebRTC
只使用于浏览器上,而事实上 WebRTC
的一个特征就是本地和Web应用间的交互 ,而Web应用不是局限于前端页面,更多指代后端程序。浏览器
而实现一套 WebRTC
通常须要归纳为三个步骤:服务器
因此只需完成了以上三个特征,按照 WebRTC
协议实现代码,AndroidRTC
是能够有的,而 Github 上也有很多“原生”级别的 Android Web RTC 项目,可是在投入使用的过程汇总, WebRTC
中仍存在一些难点:网络
同时,在 Android 上实现一个能达到商用的 AndroidRTC
产品,客户端上你至少须要优秀的 C++
、OpenGL
、FFMEPG
等技术,而且在服务端维护房号、推流、长连接等服务,这对于小团队公司明显不现实,那么如何知足产品需求呢?这就是后续的 Agora SDK
的业务范畴了。post
4行代码,30分钟,在应用内构建 视频通话、语音通话、互动直播等产品需求。性能
在体验了 Agora SDK
以后,不得不说我是被惊艳到了,如同官方宣称通常,虽然不止4行代码,可是实实在在的30分钟内 ,完整实现了多人视频通话的需求,如下是我将 Demo 编译出来的 Apk 二维码,不过由于测试 AppId 限制,因此你们还请省着用哈。测试
具体使用方法在权限容许以后,使用两台手机设置一个房间名,点击广播模式进入便可。
回到主题,在集成 Agora SDK 的过程也是十分顺利的,本质上的步骤就是:
每一个步骤并不繁琐,其中主要在于你须要本身实现窗体的组合显示,而官方的 Demo 经过 RecyclerView
的封装就是很好的参考,更多集成可直接参阅 官方集成教程 。
同时在对于 SDK 的源码翻阅后,对于开发者头疼的摄像头,网络链接,针绘制,音视频同步 等功能都被封装到 agora-rtc-sdk-jni.so
里,全部的操做都是经过 JNI native
接口操做,在性能和保密上也获得了进一步的提高,同时你只须要调用对应的接口来实现所需功能,不过目前每一个so库默认大小在12M左右,因此适当配置 NDK 过滤仍是必须的。
在体验过程过程当中,也发现了相似麦克风自激等问题依旧存在,不过这也属于鸡蛋挑骨头了,要知道官方还提供了美颜、变声、混音、加密、通话录制等等功能,而且以下图所示,管理后台连数据统计也包罗万象。
Android
、IOS
、Window
、Mac
、Web
,甚至还支持了 React-Native
和 Flutter
,因此对于有 RTC
需求的用户,必须强烈推荐 Agora SDK
有木有。那么问题来了,这么优秀的SDK,它收费吗?
不收费是不可能的,这辈子都不可能的,毕竟后台服务都提供了,关键在于价格和前期体验,我的体验下来只有两个字:【优秀】 !因此不废话,一切以下图连接走起。
Agora SDK 使用体验征文大赛 | 掘金技术征文,征文活动正在进行中