Qt6.5.1+WebRTC学习笔记(九)运行官方示例(win10+vs2019)

news2024/11/24 3:24:20

前言

webrtc源码目录下,有个examples目录,里面放置着官方的示例,其有peerconnection示例。

一、问题

peerconnection示例分客户端和服务端,以win系统为例,编译后会在输出目录生成两个可执行文件

 服务端程序可以正常启动,但客户端程序旧版可以正常运行,最新版无法正常运行,需要修改下部分文件

二、解决方法

根据官方解决方案

fix.patch (1.2 KB) - webrtc - Web-based real-time communication - Monorail

需要对源码做下修改

1.在/examples/peerconnection/client/main.cc文件中,添加如下部分

WindowsCommandLineArguments::WindowsCommandLineArguments() {
   LocalFree(wide_argv);
 }
 
+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);
+  }
+};
+
 }  // namespace

 2.在/examples/peerconnection/client/main.cc文件中,修改如下部分

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);
 
   WindowsCommandLineArguments win_args;

 3.在/examples/peerconnection/client/main.cc文件中,添加如下部分

int PASCAL wWinMain(HINSTANCE instance,
   PeerConnectionClient client;
   auto conductor = rtc::make_ref_counted<Conductor>(&client, &wnd);
 
+  main_thread.Start();
   // Main loop.
   MSG msg;
   BOOL gm;

 三、重新编译运行

1.重新编译,执行如下命令

ninja -C out/Default peerconnection_client

2. 先运行服务端,再运行客户端

 注:IP地址需要填写“127.0.0.1”,而不是“localhost”!!!

后记

根据webrtc官方文档指引,这两个示例是开发学习webRTC的敲门砖,建议新入坑的小伙伴仔细研究下相关代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/601232.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【基于GD32E230的定时器级联M/T法电机测速】

前言 在有感电机控制中&#xff0c;获取电机转速是非常重要的步骤&#xff0c;转速获取越准确&#xff0c;控制电机时越方便&#xff0c;抛开霍尔不谈&#xff0c;这里讨论电机编码器。 目前常见的电机编码器按种类分为绝对值编码器和增量编码器&#xff0c;绝对值编码器相对…

厚积薄发,AR光学方案商光舟半导体于AWE 2023首次公开亮相

青亭网6月2日报道&#xff0c;国内AR光波导技术厂商“光舟半导体”&#xff08;深圳市光舟半导体技术有限公司&#xff09;在AWE 2023首次公开亮相&#xff0c;并展示了最新的AR光波导模组、光机/光引擎、汽车HUD三大产品。 光舟半导体成立于2020年1月&#xff0c;公司由AR光学…

5.8 几个常见JavaScript图表库

几个常见JavaScript图表库 目录1、 Chart.js2、 Chartist.js3、 Highcharts.js4、 D3.js5、 Plotly.js6、 ECharts.js7、 Google Charts8、Other Charts 目录 1、 Chart.js 官方网站&#xff1a; www.chartjs.org Chart.js 是一个基于 HTML5 Canvas 的 JavaScript 图表库&…

Day59【单调栈】503.下一个更大元素II、42.接雨水

503.下一个更大元素II 力扣题目链接/文章讲解 视频讲解 本题和739.每日温度很相似&#xff0c;只不过是循环数组 一种处理循环的方式是&#xff0c;直接把两个数组拼接在一起&#xff0c;然后使用单调栈求下一个最大值 class Solution { public:vector<int> nextGre…

【JUC基础】13. 线程池(二)

目录 1、前言 2、Java实现线程池 2.1、Executors框架 2.2、newFixedThreadPool 2.3、newCachedThreadPool 2.4、newSingleThreadExecutor 2.5、newScheduledThreadPool 2.5.1、scheduleAtFixedRate 2.5.2、scheduleWithFixedDelay 2.5.3、异常中断 3、execute()和sub…

大数据挖掘企业服务平台(TipDM大数据挖掘建模平台)-快速构建数据挖掘工程

“TipDM大数据挖掘建模平台”&#xff08;以下简称平台&#xff09;是由广东泰迪智能科技股份有限公司自主研发&#xff0c;基于Python引擎的数据挖掘建模平台。使用平台配置的开箱即用的算法组件&#xff0c;用户可在没有编程基础的情况下&#xff0c;通过拖拽的方式进行操作&…

蓝牙规范系列--经典蓝牙概述(第一篇)

一、目的 从本篇开始介绍经典蓝牙的基础知识&#xff0c;内容较多故会分成多篇进行介绍。 经典蓝牙&#xff08;BR/EBR&#xff09;射频&#xff08;物理层PHY&#xff09;工作在免授权的2.4G ISM频段&#xff08;2400 - 2483.5 MHz&#xff09;&#xff0c;使用跳频技术来对抗…

基于java的班级管理系统的设计与实现

一:需求分析 1.功能需求 1).能够实现对班级学生基本资料的录入,包括学生的学号,姓名,性别,所学专业,家庭住址以及出生年月等。 2).能够实现对学生基本资料的修改。 3).根据学号对学生资料进行查询。 4).能够删除某些学生的资料。 二:总体设计 本班级管理系统共有6…

静态Web服务器搭建

文章目录 一&#xff0c;安装Apache软件&#xff08;一&#xff09;Apache软件安装&#xff08;二&#xff09;Apache软件管理&#xff08;三&#xff09;Apache软件基本设置&#xff08;四&#xff09;测试Apache服务器 二&#xff0c;Apache服务器的配置文件&#xff08;一&a…

【C++】结构体 - 定义和使用,结构体数组,结构体指针,结构体嵌套结构体,结构体做函数参数,结构体 const

文章目录 1. 定义和使用2. 结构体数组3. 结构体指针4. 结构体嵌套结构体5. 结构体做函数参数6. 结构体 const 1. 定义和使用 结构体属于用户自定义的数据类型&#xff0c;允许用户存储不同的数据类型。 struct 结构体 {结构体成员列表}; 通过结构体创建变量的方法有三种&…

2023,智能硬件的AIGC“又一春”

​ 文|智能相对论 作者|佘凯文 消费电子产品风光不再&#xff0c;特别是自去年以来&#xff0c;电子消费市场经历了一整年的寒潮袭击&#xff0c;智能手机等产品达到10年消费谷底&#xff0c;PC出货量整体下降16%&#xff0c;不仅如此&#xff0c;包括平板、可穿戴设备也一改…

URP Shader FrameBuffer Fetch Mali Crash

1&#xff09;URP Shader FrameBuffer Fetch Mali Crash ​2&#xff09;Unity模型Lightmap UV相关的疑问 3&#xff09;动画上下半身融合问题 4&#xff09;AnimatorControllerPlayable.PrepareFrame函数在什么情况下调用 这是第338篇UWA技术知识分享的推送&#xff0c;精选了…

如何将 HTML 字符串转换成 DOM 对象:用 DOMParser

如何将 HTML 字符串转换成 DOM 对象&#xff1a;用 DOMParser 一、问题描述 有的时候我们需要处理一些 HTML 字符串&#xff0c;比如我需要从下方 HTML 字符串中提取每个 <a> 标签的内容和属性。 <pre><a href"cc1245.jpg">cc1245.jpg</a>…

将ipa文件上架苹果应用商店详细教程

使用windows电脑打包好uniapp的ios应用之后&#xff0c;还有一个麻烦事&#xff0c;就是需要将这个打包好的ipa格式的文件&#xff0c;上架到苹果的应用商店。用户才能安装。 而苹果提供的上传工具&#xff0c;比如xcode或transports&#xff0c;只能安装在mac电脑&#xff0c…

国产AIGC大模型汇总

“ 随着ChatGPT和GPT-4的出现&#xff0c;直接引爆了全球的AIGC大模型市场&#xff01;为了赶上这一波热潮&#xff0c;国内的大厂和创业公司也纷纷内卷起来&#xff0c;相继发布了自己的大模型。但是到目前为止&#xff0c;没有一个大模型能与ChatGPT相提并论&#xff0c;更比…

【算法系列之二叉树III】leetcode236. 二叉树的最近公共祖先

617.合并二叉树 力扣题目链接 给你两棵二叉树&#xff1a; root1 和 root2 。 想象一下&#xff0c;当你将其中一棵覆盖到另一棵之上时&#xff0c;两棵树上的一些节点将会重叠&#xff08;而另一些不会&#xff09;。你需要将这两棵树合并成一棵新二叉树。合并的规则是&…

MySQL 三万字精华总结 + 面试100 问,和面试官扯皮绰绰有余

MySQL 三万字精华总结 面试100 问&#xff0c;和面试官扯皮绰绰有余 写在之前&#xff1a;不建议那种上来就是各种面试题罗列&#xff0c;然后背书式的去记忆&#xff0c;对技术的提升帮助很小&#xff0c;对正经面试也没什么帮助&#xff0c;有点东西的面试官深挖下就懵逼了。…

linuxOPS基础_linux文本文件查看

vi/vim vim文档编辑操作太多了,可以看这篇单独介绍vim的文章>https://blog.csdn.net/weixin_44368963/article/details/130963920 cat查看文件 命令&#xff1a;cat 作用&#xff1a;查看文件内容 语法&#xff1a;#cat 文件名称 ​ #cat 文件1 文件2 > 文件3 **特别注…

如何利用CiteSpace快速锁定领域内最新研究热点并制作精美的可视化专题图?

【基于Citespace和vosviewer文献计量学相关论文 】 ​ 01 文献计量学方法与应用 1. 文献计量学方法基本介绍 2. 与其他综述方法区别联系 3. 各学科领域应用趋势近况 4. 主流分析软件优缺点对比 5. 经典高分10SCI思路复盘 6. 软件安装与Java环境配置 02 主题确定、数据检…

Vue+springboot校园跳蚤二手市场管理系统

摘 要 本毕业设计的内容是设计并且实现一个基于Springboot框架的校园跳蚤市场管理系统。它是在Windows下&#xff0c;以MYSQL为数据库开发平台&#xff0c;Tomcat网络信息服务作为应用服务器。校园跳蚤市场管理系统的功能已基本实现&#xff0c;主要包括用户、卖家、商品分类…