webrtc的编译和调试

webrtc在安卓平台的编译

webrtc源码下载和编译

(整个库非常大,包含三方库一起大概30多G):

编译指导文档
https://mp.weixin.qq.com/s/6DWubdMJBUCKqbpTFH2wOA

1. 获取代码
安装depot_tools:  
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATH=$PATH:${HOME}/depot_tools

fetch --nohooks webrtc_android
gclient sync

2. 安装依赖:
cd src
./build/install-build-deps.sh
./build/install-build-deps-android.sh

3. 编译
gn gen out/Debug64 --args='target_os="android" target_cpu="arm64" is_debug=true'
ninja -C out/Debug64

切换代码分支:
切换到分支对应分支后,运行同步:
gclient sync

替换jar包:
libs/autobanh.jar, 从Webrtc源码/src/examples/androidapp/thrid_party/lib 中找到 
libs/libwebrtc.jar, 编译出来后生成的webrtc_android jar包, 编译后生成的目录在Webrtc源码/src/out/Debug/lib.java/sdk/android/libwebrtc.jar 源代码在 Webrtc源码/src/sdk/android/src/java 下

打包aar文件:
1. 首先,请移步至WebRTC Android源码目录下这个位置: \src\tools_webrtc\android\ ,你会看到有2个python脚本,一个是build_aar.py,另外一个是release_aar.py。有了这两个脚本,打包制作aar和pom文件就变得十分简单了。
2. 默认的pom文件中的groupId是org.webrtc,你可以根据需要修改成你的。例如:com.yourcompany.yourproduct
3. 运行build_aar.py脚本,会在当前目录生成libwebrtc.aar文件;
4. 修改app的build.gradle文件,在dependencies中添加一项“implementation files”,加入aar文件的路径。

打开native层日志:
1. 编译debug版本的so
2. 在代码的构造函数中添加:
#include "webrtc/base/logging.h"
rtc::LogMessage::SetLogToStderr(true);

 编译rtcAppMobile demo程序,调试webrtc;

1. 出现报错: Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
解决办法:1. 更新andriod sdk tool版本(根据报错的版本进行安装) 、
         2. 下载更新andriod sdk版本。

2. 出现报错: aapt error attribute alpha not found
解决办法: 1. 修改build.gradle中的插件版本为: classpath 'com.android.tools.build:gradle:3.6.4'
          2. 修改 files -> Project Struction -> gradle 版本为 6.5

webrtc Windows平台编译

编译参考文档:
https://blog.jianchihu.net/windows-webrtc-build.html

问题1: 
gclient sync时可能会遇到ssl的报错:
解决办法:
1. 执行 git config http.sslVerify "false" 后,再执行gclient sync
2. 如果报错是src\resource\audio_xxx,可以忽略。

问题2:
如果安装了Windows SDK还是找不到路径
解决办法:
打开vs2019安装中心,查看win 10 sdk是否已经安装,底下的目录不一定是sdk安装位置。可以建一个工程,包含 #include "virtdisk.h" ,跳转看看安装目录位于哪儿。拷贝到C:\Program Files (x86)\Windows Kits\10下,其它vs2008等可以默认找到。

日志输出到文件:

 https://codeleading.com/article/26425565674/
  rtc::LogMessage::LogToDebug(rtc::LS_INFO); 
  rtc::LogMessage::SetLogToStderr(true);
  rtc::FileRotatingLogSink ff("C:\\", "webrtc_log", 1024 * 1024 * 10, 3);
  ff.Init();
  unsigned int count = 0;
 
  rtc::LogMessage::AddLogToStream(&ff, rtc::LS_INFO);
  bool loop = true;
  while (loop) {
     RTC_LOG(INFO) << "hello world count:" << count++;
  }
 


版权声明:本文为HTJOY1202原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。