共计 1633 个字符,预计需要花费 5 分钟才能阅读完成。
attention:官网提供的构建方法有毒。。官网 https://webrtc.org/native-cod…:build/android/gradle/generate_gradle.py –output-directory $PWD/out/Debug –target “//examples:AppRTCMobile” –use-gradle-process-resources –split-projects –canary 几大坑点:1. 使用 –canary 参数这样会使得生成的工程依赖 cannary 版本的 as,如果你用来编译的 webrtc 源码特别的新,那么导入到 windows 电脑的 as 上面的时候你会发现,工程依赖的 as 版本比你 windows 电脑的 as 版本(windows 电脑的版本智能更新到 stable 的最新版)还要新,如果强行改 build.gradle 上面的 as 版本配置,可能会遇到各种奇葩问题 so:如果 webrtc 源码特别新,那生成的时候就要生成 stable 版本,怎么生成呢,去掉 –canary,默认的就是 stable 版本;如果 webrtc 源码比较老,那没问题,还是用 –canary,什么都不用改 2. 生成的工程很诡异,生成的 gradle 文件夹直接导入到 as,出现各种源码找不到,google 自带工具找不到的问题首先,工程源码以及 jar so 都还在 webrtc 的源码目录,并没有拷贝到 gradle 文件夹,得把相应的 webrtc 源码目录一并拷贝到 windows,才能让工程找到源码。另外,各级的 build.gradle 里面的 exclude 各种假如 org.webrtc.audio 包所在的目录,导致部分子工程找不到 org.webrtc.audio 包,去掉 exclude 的相关内容,却会出现其它问题。so… 不建议直接使用这个生成的目录,而应该使用 webrtc 源码里面的 /src/example/androidapp 目录为蓝本,结合 /src/example/aarproject 里面的各个 build.gradle 以及 https://github.com/duqian2919…https://github.com/Piasy/webrtc 里面的 build.gradle 最终构建好自己所能使用的 as 工程
构建工程的时候要注意:1. 先自己创建一个没有 c ++support 的 helloworld 工程,不要直接 import 源码里面的 androidapp 文件夹工程,这样会有各种奇怪问题 2. 把 androidapp 目录下的 res 资源文件以及 AndroidMainifest 文件拷贝到工程目录 3. 工程唯一依赖的 jar 文件是,autobanh.jar 文件,记得要从 src/out/ebug/lib.java 目录导出来,然后加入到工程里面,libjingle_peerconnection_so.so 也是一样,当然要加一级指示 platform 的目录
工程目录结构
as 工程编译正常并且能够正常连接到默认的 appr.tc 服务器之后,如果要让 AppRTCMobile 连接到自己部署的服务器(比如是 https://www.zeng060.top:8081),那么需要修改以下几个地方:1. 全工程搜索 appr.tc,全都改成 https://www.zeng060.top:8081 大概有四五个地方吧 2. 打开 org.appspot.apprtc.RoomParametersFetcher.java 文件,把里面的 connection.setDoOutput(true); 去掉然后重新编译,就能连接到自己部署的服务器了
ps:windows 电脑需要翻墙,而且是全局翻墙,不然又得闹心了。。。(改 host 文件也能做到类似的效果)
最新版本分离了 app 应用部分以及 webrtc 库部分,GitHub 链接如下 https://github.com/zengpeace/… 觉得给力的话欢迎点 star