windows Webrtc +VS2019 (M124)下载编译以及调通测试demo

2024-04-17 07:04

本文主要是介绍windows Webrtc +VS2019 (M124)下载编译以及调通测试demo,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

下载depot tools

设置梯子

git config --global http.proxy =127.0.0.1:10000

git config --global https.proxy =127.0.0.1:10000

下载

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

设置depot_tools目录为环境变量

下载webrtc

# 设置系统代理

set https_proxy= 127.0.0.1:10000

# 创建源码目录

mkdir  webrtc-checkout

cd webrtc-checkout

# 拉取 webrtc 源码

fetch --nohooks webrtc

# 同步工具

gclient sync –with_branch_heads

git fetch

git branch –a

切换到指定版本

git checkout –b m124 remotes/branch-heads/6367

生成VS工程以及编译

set DEPOT_TOOLS_WIN_TOOLCHAIN=0

set GYP_MSVS_VERSION=2019

set GYP_MSVS_OVERRIDE_PATH="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community"

set GYP_GENERATORS=msvs-ninja,ninja

gn gen out/project --ide=vs2019

# 编译 webrtc

ninja -C out/project -j 8

以后每次编译都需要去设置一下“set DEPOT_TOOLS_WIN_TOOLCHAIN=0

测试peerconnection_client/peerconnection_server

找到两台内网机器

A:开启server程序,以及开启client程序,并设置ip为127.0.0.1

B:开启client程序,并设置A的ip地址

问题:测试结果发现新版的webrtc没有去触发tcp的onconnect信号

解决方法:

1. 在peerconnection_client下 main.cc 内新增类

class CustomSocketServer:public rtc::PhysicalSocketServer {

public:

    bool Wait(webrtc::TimeDelta max_wait_duration, bool process_io) override {

        if (!process_io)

            return true;

        return rtc::PhysicalSocketServer::Wait(webrtc::TimeDelta::Zero(), process_io);

    }

};

2. 注释rtc::PhysicalSocketServer ss 使用CustomSocketServer ss:

int PASCAL wWinMain(HINSTANCE instance,

                    HINSTANCE prev_instance,

                    wchar_t* cmd_line,

                    int cmd_show) {

  rtc::WinsockInitializer winsock_init;

  //rtc::PhysicalSocketServer ss;

  CustomSocketServer ss;

  rtc::AutoSocketServerThread main_thread(&ss);

3. 在注释 //Main loop前新增:

  main_thread.Start();

  // Main loop.

  MSG msg;

  BOOL gm;

再重复之前的测试发现可以了,从此webrtc-demo就跑通了

这篇关于windows Webrtc +VS2019 (M124)下载编译以及调通测试demo的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/911105

相关文章

使用Python创建一个功能完整的Windows风格计算器程序

《使用Python创建一个功能完整的Windows风格计算器程序》:本文主要介绍如何使用Python和Tkinter创建一个功能完整的Windows风格计算器程序,包括基本运算、高级科学计算(如三... 目录python实现Windows系统计算器程序(含高级功能)1. 使用Tkinter实现基础计算器2.

Windows系统宽带限制如何解除?

《Windows系统宽带限制如何解除?》有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文就跟大家一起来看看Windows系统解除网络限制的操作方法吧... 有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文

windows和Linux使用命令行计算文件的MD5值

《windows和Linux使用命令行计算文件的MD5值》在Windows和Linux系统中,您可以使用命令行(终端或命令提示符)来计算文件的MD5值,文章介绍了在Windows和Linux/macO... 目录在Windows上:在linux或MACOS上:总结在Windows上:可以使用certuti

Windows 上如果忘记了 MySQL 密码 重置密码的两种方法

《Windows上如果忘记了MySQL密码重置密码的两种方法》:本文主要介绍Windows上如果忘记了MySQL密码重置密码的两种方法,本文通过两种方法结合实例代码给大家介绍的非常详细,感... 目录方法 1:以跳过权限验证模式启动 mysql 并重置密码方法 2:使用 my.ini 文件的临时配置在 Wi

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

前端下载文件时如何后端返回的文件流一些常见方法

《前端下载文件时如何后端返回的文件流一些常见方法》:本文主要介绍前端下载文件时如何后端返回的文件流一些常见方法,包括使用Blob和URL.createObjectURL创建下载链接,以及处理带有C... 目录1. 使用 Blob 和 URL.createObjectURL 创建下载链接例子:使用 Blob

Redis在windows环境下如何启动

《Redis在windows环境下如何启动》:本文主要介绍Redis在windows环境下如何启动的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Redis在Windows环境下启动1.在redis的安装目录下2.输入·redis-server.exe

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

Java实现文件图片的预览和下载功能

《Java实现文件图片的预览和下载功能》这篇文章主要为大家详细介绍了如何使用Java实现文件图片的预览和下载功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... Java实现文件(图片)的预览和下载 @ApiOperation("访问文件") @GetMapping("