apprtcmobile android studio工程,源码构建
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