Android技术分享| anyLive 开源项目

Posted anyRTC

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android技术分享| anyLive 开源项目相关的知识,希望对你有一定的参考价值。

简介

​anyLive 是开源的推拉流项目,本项目采用跨平台架构设计,一套代码支持androidios、Windows、Mac、Ubuntu等平台。本文主要介绍 anyLive Android 平台的实现。

此项目中包含对 JNI 的使用,WebRTC Native 的实践,音视频编解码的相关实现,如果有兴趣,可以阅读源码,点个Star🌟。

功能特性

  • 推流
  • 拉流
  • 屏幕共享
  • 图片推流
  • 基于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 类注释

以上是关于Android技术分享| anyLive 开源项目的主要内容,如果未能解决你的问题,请参考以下文章

IOS技术分享| ARCallPlus 开源项目

IOS技术分享| ARCallPlus 开源项目

IOS技术分享| ARCallPlus 开源项目

IOS技术分享| ARCallPlus 开源项目

机友分享 导入机智云Android开源项目的正确姿势

同行说技术Android程序员从小白到大神必读资料汇总