Android技術分享| anyLive 開源專案

語言: CN / TW / HK

簡介

anyLive 是開源的推拉流專案,本專案採用跨平臺架構設計,一套程式碼支援Android、iOS、Windows、Mac、Ubuntu等平臺。本文主要介紹 anyLive Android 平臺的實現。

此專案中包含對 JNI 的使用,WebRTC Native 的實踐,音視訊編解碼的相關實現。

功能特性

  • 推流
  • 拉流
  • 螢幕共享
  • 圖片推流
  • 基於GPUImage的實時濾鏡
  • 音視訊採集編解碼方面基於 WebRTC-93、 ffmpeg4.3
  • 音視訊自採集自渲染

Demo展示

專案原始碼

GO🚀

編譯註意事項

使用 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 類註釋

在這裡插入圖片描述