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
中仍存在一些難點:markdown
同時,在 Android 上實現一個能達到商用的 AndroidRTC
產品,客戶端上你至少須要優秀的 C++
、OpenGL
、FFMEPG
等技術,而且在服務端維護房號、推流、長連接等服務,這對於小團隊公司明顯不現實,那麼如何知足產品需求呢?這就是後續的 Agora SDK
的業務範疇了。網絡
4行代碼,30分鐘,在應用內構建 視頻通話、語音通話、互動直播等產品需求。oop
在體驗了 Agora SDK
以後,不得不說我是被驚豔到了,如同官方宣稱通常,雖然不止4行代碼,可是實實在在的30分鐘內 ,完整實現了多人視頻通話的需求,如下是我將 Demo 編譯出來的 Apk 二維碼,不過由於測試 AppId 限制,因此你們還請省着用哈。post
具體使用方法在權限容許以後,使用兩臺手機設置一個房間名,點擊廣播模式進入便可。
回到主題,在集成 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 使用體驗徵文大賽 | 掘金技術徵文,徵文活動正在進行中