WebRTC Android 编译运行及踩坑记录

拉取源码

WebRTC是谷歌开源的一个用于实施音视频的框架,也可以看作是一种协议。我们可以根据需要下载android、ios、web版本。
1.安装工具depot

git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git;

进入bashrc设置环境变量
首先进入home目录下,然后vim ~/.bashrc

export WEBRTC_DEPOT_TOOLS=/home/mmc/zcj/depot_tools
export PATH=$PATH:$WEBRTC_DEPOT_TOOLS

保存退出后,source ~/.bashrc
2. 下载源码

fetch --nohooks webrtc_android
gclient sync

最后的同步操作gclient sync一定要做,非常重要
3.切换分支
当源码下载好之后,一般位于master分支,我们不再这个分支上编译操作,切换到git上的4183(也就是m85版本)分支上,可以使用下面代码自定义一个m85分支,把4183上拉过来。当然也可以直接checkout到4183.

git checkout -b m85 branch-heads/4183
gclient sync
# 切换到 master 分支
$ git checkout master
$ git pull origin master
$ gclient sync
# 切换回你自己的分支(有冲突的话自己解决)
$ git checkout my-branch
$ git merge master

编译

1.安装编译依赖库

./build/install-build-deps.sh
./build/install-build-deps-android.sh

在这一步我遇到比较大的问题如下,主要原因就是现在安装的库的依赖库和系统中其他库的依赖库是同一个,但是两者需要的依赖库版本不一致。参考链接: The following packages have unmet dependencies.
在这里插入图片描述
解决方法: 使用aptitude来管理这种dll地狱问题,aptitude在删除一个包时,会同时删除本身所依赖的包:

sudo apt-get install aptitude
sudo aptitude install libwayland-egl1-mesa

安装过程中,不接受未安装方案,接受降级方案。后面就可以根据情况选择了,我都是选择的y
在这里插入图片描述
2.编译arr包
这一部我并没有选择编译整个工程,可以根据实际需求决定。

./tools_webrtc/android/build_aar.py --arch arm64-v8a

编译的过程中会一直报错,开始一直魔改,后面定位问题是因为webrtc中py文件底层实现只支持python2,而我之前系统中做深度学习都是安装的python3.8,所以只需要创建一个新的虚拟环境,环境中配置python2,然后切换到这个环境中编译就没问题了.

运行

这一部其实没啥好说的,主要就是额外下载一个demo调用编译好的webrtc库,当然也可以使用官方给的demo。
第一步需要把自己编译好的arr包放在demo中对应的位置
第二步配置好相应的端口号,编译demo烧到安卓手机中
第三步打开single server demo
第四步,两台手机在同一个局域网下,进行测试

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值