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

在這裏插入圖片描述