Android技術分享| anyLive 開源專案
簡介
anyLive 是開源的推拉流專案,本專案採用跨平臺架構設計,一套程式碼支援Android、iOS、Windows、Mac、Ubuntu等平臺。本文主要介紹 anyLive Android 平臺的實現。
此專案中包含對 JNI 的使用,WebRTC Native 的實踐,音視訊編解碼的相關實現。
功能特性
- 推流
- 拉流
- 螢幕共享
- 圖片推流
- 基於GPUImage的實時濾鏡
- 音視訊採集編解碼方面基於 WebRTC-93、 ffmpeg4.3
- 音視訊自採集自渲染
- 等
Demo展示
專案原始碼
編譯註意事項
使用 AndroidStudio 開啟之前,需要下載 webRTC,ffmpeg庫。
下載地址:👉Lib
下載解壓縮後將lib資料夾移至:liveplayer/src/main/cpp 目錄下即可
請使用 NDK 版本:20.0.5594570 編譯,否則可能會出現各種錯誤🙅
API呼叫
ArLiveEngine
建立引擎
//用於建立播放器、推流器
val liveEngine = ArLiveEngine.create(context:Context)
釋放引擎
ArLiveEngine.release()
建立推流器
liveEngine.createArLivePusher()
建立播放器
liveEngine.createArLivePlayer()
ArLivePusher
設定推流器回撥
void setObserver(ArLivePusherObserver observer)
設定本地攝像頭預覽 View
int setRenderView(TextureViewRenderer view)
開啟攝像頭
int startCamera(boolean frontCamera)
開始推流
int startPush(String url)
更多方法請參考 ArLivePusher 類註釋
ArLivePlayer
設定播放器器回撥
void setObserver(ArLivePlayerObserver observer)
設定播放器的視訊渲染 View
int setRenderView(TextureViewRenderer view)
開始播放
int startPlay(String url)
更多方法請參考 ArLivePusher 類註釋
- Android技術分享| ViewPager2離屏載入,實現抖音上下視訊滑動
- Android技術分享| Activity 過渡動畫 — 讓切換更加炫酷
- Linux下玩轉nginx系列(七)---nginx如何實現限流功能
- 技術分享| 如何部署安裝分散式序列號生成器系統
- web技術分享| 【地圖】實現自定義的軌跡回放
- 解決方案| 快對講綜合排程系統
- 實時訊息RTM| 多活架構中的資料一致性問題
- Android技術分享| Context淺析
- Android技術分享| Context淺析
- 螢幕共享的實現與應用
- 技術分析| 即時通訊和實時通訊的區別
- IOS技術分享| ARCallPlus 開源專案(二)
- Android技術分享| Android 中部分記憶體洩漏示例及解決方案
- Android技術分享| 安卓3行程式碼,實現整套音視訊通話功能
- 行業分析| 快對講Poc方案的優勢
- Android技術分享|【自定義View】實現Material Design的Loading效果
- IOS技術分享| ARCallPlus 開源專案(一)
- web技術分享| WebRTC控制攝像機平移、傾斜和縮放
- Android技術分享| anyLive 開源專案
- Android技術分享| 【Android 自定義View】多人視訊通話控制元件