Android 集成 Agora SDK 快速体验 RTC 版多人视频聊天|掘金技术征文

RTC (Real-Time Communication) 做为实时通信领域的"新贵",在互动直播、远程控制、多人视频会议、屏幕共享等领域广受好评,若是你还不了解 RTC ,Take it easy ,本文将带你用10分钟的时间,快速体验实现一个“多人视频聊天”需求。前端

没错,就是这么简单任性。以下简单看看 Agora SDK 加持下的效果。git

1、WebRTC

相较于 RTC ,更多人了解到的应该是 WebRTCWebRTC 属于 RTC 的一个子集,它先是由谷歌开源,又经历了 W3C 的更新,才成为了现在广为人知的 WebRTC 1.0github

起初 WebRTC 设计的初衷,只是为了解决两个客户端间链接发送媒体数据,也就是所谓的P2P的通讯,因此大多数的状况下不须要依赖于服务器的中转,可是随着业务发展,多对多的广播也开始被支持。后端

可是 WebRTC 的名称容易让人产生了误解,不少时候你们一直认为WebRTC 只使用于浏览器上,而事实上 WebRTC 的一个特征就是本地和Web应用间的交互 ,而Web应用不是局限于前端页面,更多指代后端程序。浏览器

而实现一套 WebRTC 通常须要归纳为三个步骤:服务器

  • 获取本地音视频数据
  • 与服务器创建连接,实现数据传输
  • 定义数据协议用于各个客户端间同步数据

因此只需完成了以上三个特征,按照 WebRTC 协议实现代码,AndroidRTC 是能够有的,而 Github 上也有很多“原生”级别的 Android Web RTC 项目,可是在投入使用的过程汇总, WebRTC 中仍存在一些难点:网络

  • 1.音视频数据量较大,须要针对网络抖动实现必定的缓冲策略
  • 2.针对出现的丢包丢帧的重传策略
  • 3.多设备上音视频的编解码支持策略

同时,在 Android 上实现一个能达到商用的 AndroidRTC 产品,客户端上你至少须要优秀的 C++OpenGLFFMEPG 等技术,而且在服务端维护房号、推流、长连接等服务,这对于小团队公司明显不现实,那么如何知足产品需求呢?这就是后续的 Agora SDK 的业务范畴了。post

2、声网 Agora SDK

4行代码,30分钟,在应用内构建 视频通话、语音通话、互动直播等产品需求。性能

在体验了 Agora SDK 以后,不得不说我是被惊艳到了,如同官方宣称通常,虽然不止4行代码,可是实实在在的30分钟内 ,完整实现了多人视频通话的需求,如下是我将 Demo 编译出来的 Apk 二维码,不过由于测试 AppId 限制,因此你们还请省着用哈。测试

具体使用方法在权限容许以后,使用两台手机设置一个房间名,点击广播模式进入便可。

回到主题,在集成 Agora SDK 的过程也是十分顺利的,本质上的步骤就是:

  • 一、添加依赖
  • 二、调用初始化
  • 三、添加本机本地显示窗体
  • 四、建立或加入一个频道
  • 五、接受用户加入,显示对方画面

每一个步骤并不繁琐,其中主要在于你须要本身实现窗体的组合显示,而官方的 Demo 经过 RecyclerView 的封装就是很好的参考,更多集成可直接参阅 官方集成教程

同时在对于 SDK 的源码翻阅后,对于开发者头疼的摄像头,网络链接,针绘制,音视频同步 等功能都被封装到 agora-rtc-sdk-jni.so 里,全部的操做都是经过 JNI native 接口操做,在性能和保密上也获得了进一步的提高,同时你只须要调用对应的接口来实现所需功能,不过目前每一个so库默认大小在12M左右,因此适当配置 NDK 过滤仍是必须的。

在体验过程过程当中,也发现了相似麦克风自激等问题依旧存在,不过这也属于鸡蛋挑骨头了,要知道官方还提供了美颜、变声、混音、加密、通话录制等等功能,而且以下图所示,管理后台连数据统计也包罗万象。

最后,Agora SDK 支持 AndroidIOSWindowMacWeb,甚至还支持了 React-NativeFlutter ,因此对于有 RTC 需求的用户,必须强烈推荐 Agora SDK 有木有。

那么问题来了,这么优秀的SDK,它收费吗?

不收费是不可能的,这辈子都不可能的,毕竟后台服务都提供了,关键在于价格和前期体验,我的体验下来只有两个字:【优秀】 !因此不废话,一切以下图连接走起。


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

相关文章
相关标签/搜索