Android 整合 Agora SDK 快速體驗 RTC 版多人視訊聊天|掘金技術徵文

戀貓de小郭發表於2019-04-23

RTC (Real-Time Communication) 作為實時通訊領域的"新貴",在互動直播、遠端控制、多人視訊會議、螢幕共享等領域廣受好評,如果你還不瞭解 RTC ,Take it easy ,本文將帶你用10分鐘的時間,快速體驗實現一個“多人視訊聊天”需求。

沒錯,就是這麼簡單任性。如下簡單看看 Agora SDK 加持下的效果。

Android 整合 Agora SDK 快速體驗 RTC 版多人視訊聊天|掘金技術徵文

一、WebRTC

相較於 RTC ,更多人瞭解到的應該是 WebRTCWebRTC 屬於 RTC 的一個子集,它先是由谷歌開源,又經歷了 W3C 的更新,才成為了如今廣為人知的 WebRTC 1.0

起初 WebRTC 設計的初衷,只是為了解決兩個客戶端間連線傳送媒體資料,也就是所謂的P2P的通訊,所以大多數的情況下不需要依賴於伺服器的中轉,但是隨著業務發展,多對多的廣播也開始被支援。

但是 WebRTC 的名稱容易讓人產生了誤解,很多時候大家一直認為WebRTC 只使用於瀏覽器上,而事實上 WebRTC 的一個特徵就是本地和Web應用間的互動 ,而Web應用不是侷限於前端頁面,更多指代後端程式。

而實現一套 WebRTC 一般需要概括為三個步驟:

  • 獲取本地音視訊資料
  • 與伺服器建立連結,實現資料傳輸
  • 定義資料協議用於各個客戶端間同步資料

所以只需完成了以上三個特徵,按照 WebRTC 協議實現程式碼,AndroidRTC 是可以有的,而 Github 上也有不少“原生”級別的 Android Web RTC 專案,但是在投入使用的過程彙總, WebRTC 中仍存在一些難點:

  • 1.音視訊資料量較大,需要針對網路抖動實現一定的緩衝策略
  • 2.針對出現的丟包丟幀的重傳策略
  • 3.多裝置上音視訊的編解碼支援策略

同時,在 Android 上實現一個能達到商用的 AndroidRTC 產品,客戶端上你至少需要優秀的 C++OpenGLFFMEPG 等技術,並且在服務端維護房號、推流、長連結等服務,這對於小團隊公司明顯不現實,那麼如何滿足產品需求呢?這就是後續的 Agora SDK 的業務範疇了。

二、聲網 Agora SDK

4行程式碼,30分鐘,在應用內構建 視訊通話、語音通話、互動直播等產品需求。

Android 整合 Agora SDK 快速體驗 RTC 版多人視訊聊天|掘金技術徵文

在體驗了 Agora SDK 之後,不得不說我是被驚豔到了,如同官方宣稱一般,雖然不止4行程式碼,但是實實在在的30分鐘內 ,完整實現了多人視訊通話的需求,以下是我將 Demo 編譯出來的 Apk 二維碼,不過因為測試 AppId 限制,所以大家還請省著用哈。

具體使用方法在許可權允許之後,使用兩臺手機設定一個房間名,點選廣播模式進入即可。

Android 整合 Agora SDK 快速體驗 RTC 版多人視訊聊天|掘金技術徵文

回到主題,在整合 Agora SDK 的過程也是十分順利的,本質上的步驟就是:

  • 1、新增依賴
  • 2、呼叫初始化
  • 3、新增本機本地顯示窗體
  • 4、建立或加入一個頻道
  • 5、接受使用者加入,顯示對方畫面

每個步驟並不繁瑣,其中主要在於你需要自己實現窗體的組合顯示,而官方的 Demo 通過 RecyclerView 的封裝就是很好的參考,更多整合可直接參閱 官方整合教程

Android 整合 Agora SDK 快速體驗 RTC 版多人視訊聊天|掘金技術徵文

同時在對於 SDK 的原始碼翻閱後,對於開發者頭疼的攝像頭,網路連線,針繪製,音視訊同步 等功能都被封裝到 agora-rtc-sdk-jni.so 裡,所有的操作都是通過 JNI native 介面操作,在效能和保密上也得到了進一步的提升,同時你只需要呼叫對應的介面來實現所需功能,不過目前每個so庫預設大小在12M左右,所以適當配置 NDK 過濾還是必須的。

在體驗過程過程中,也發現了類似麥克風自激等問題依舊存在,不過這也屬於雞蛋挑骨頭了,要知道官方還提供了美顏、變聲、混音、加密、通話錄製等等功能,並且如下圖所示,管理後臺連資料統計也一應俱全。

Android 整合 Agora SDK 快速體驗 RTC 版多人視訊聊天|掘金技術徵文

最後,Agora SDK 支援 AndroidIOSWindowMacWeb,甚至還支援了 React-NativeFlutter ,所以對於有 RTC 需求的使用者,必須強烈推薦 Agora SDK 有木有。

那麼問題來了,這麼優秀的SDK,它收費嗎?

不收費是不可能的,這輩子都不可能的,畢竟後臺服務都提供了,關鍵在於價格和前期體驗,個人體驗下來只有兩個字:【優秀】 !所以不廢話,一切如下圖連結走起。

Android 整合 Agora SDK 快速體驗 RTC 版多人視訊聊天|掘金技術徵文


Agora SDK 使用體驗徵文大賽 | 掘金技術徵文,徵文活動正在進行中

Android 整合 Agora SDK 快速體驗 RTC 版多人視訊聊天|掘金技術徵文

相關文章