Windows平台下Mediasoup客户端开发指南
操作系统:Windows 10
IDE: Visual Studio 2019
GitHub:https://github.com/versatica/libmediasoupclient/
官网文档:https://mediasoup.org/documentation/v3/libmediasoupclient/
一、前言
Windows版本的Mediasoup客户端需要基于libmediasoupclient和libwebrtc开发,关于这两个静态库如何编译我已经在前面两篇文章中有详细说明了,请移步:Google开源项目WebRTC下载及编译、Windows平台下libmediasoupclient编译指南。走到这一步可以说很不容易了,前方仍然荆棘密布,危险警告。如果想要抄近道,比如直接拿别人编译好的libmediasoupclient和libwebrtc,我奉劝早点放弃这种幼稚的想法,因为项目依赖关系过于复杂,实际行不通的,还是得一步一个脚印的走。
二、新建项目
Mediasoup客户端除了需要libmediasoupclient和libwebrtc提供的网络通信功能之外,还需要创建用户界面,这里我使用的是Qt 5.15.2,由于之前工作的关系,我对这套GUI框架可以说十分熟悉了。
首先,我们使用VS2019新建一个Qt项目,创建一个主窗口。然后添加一个新的类:MediasoupApi,用于封装Mediasoup提供的接口。类的构造函数先实现一个最简单的版本号打印:
#include "MediasoupApi.h"
#include <iostream>
#include <mediasoupclient.hpp>MediasoupApi::MediasoupApi()
{std::string ver = mediasoupclient::Version();std::cout << ver << std::endl;
}
三、项目配置
1、静态库头文件
找到libmediasoupclient和libwebrtc静态库的头文件,并添加到项目。
在项目属性 > 配置属性 > c/c + + > 常规 > 附加包含目录中添加:
D:\Github\libmediasoupclient\include
D:\Github\libmediasoupclient\deps\libsdptransform\include
D:\libwebrtc\src
D:\libwebrtc\src\third_party\abseil-cpp
2、链接静态库
找到libmediasoupclient和libwebrtc静态库文件,并添加到项目。
在项目属性 > 配置属性 > 链接器 > 输入 > 附加依赖项中添加:
D:\libwebrtc\src\out\Default\obj\webrtc.lib
D:\Github\libmediasoupclient\build\Release\mediasoupclient.lib
3、宏定义
在项目属性 > 配置属性 > c/c + + > 预处理器 > 预处理器定义中添加:
NOMINMAX
WIN32
_WINDOWS
NDEBUG
WEBRTC_WIN
4、运行库
项目属性 > 配置属性 > c/c + + > 代码生成 > 运行库,这项需要改为MT模式。
5、链接libwinmm
在MediasoupApi.cpp中添加#pragma comment(lib, "winmm.lib "),否则编译时会报错:
无法解析的外部符号 __imp__timeGetTime
6、控制台打印
如果想要在程序运行后,查看控制台打印
需要在项目属性 > 配置属性 > 生成事件 > 生成后事件 > 命令行中添加:
editbin /SUBSYSTEM:CONSOLE $(OutDir)\$(ProjectName).exe
四、编译运行
项目配置完成后就可以编译运行查看效果了,这里打印版本号为3.1.2即说明我们已经成功引入libmediasoupclient了。
Windows平台下Mediasoup客户端开发指南相关推荐
- Windows平台下Glade+GTK开发环境的搭建
[@.1 MVVM设计模式与Glade] 做上层软件开发的程序员可能对于MVVM模式比较熟悉,这是一种经典的软件设计模式,很好的将用户界面与后台处理之间分层开,通过属性.事件绑定这种统一的" ...
- php生鲜超市系统,毕业论文:基于PHP平台下的Ajax开发实践—网上生鲜超市系统的开发...
毕业论文:基于PHP平台下的Ajax开发实践-网上生鲜超市系统的开发 发表时间:2013-5-8 12:17:49 大学学士毕业论文 基于PHP平台下的Ajax开发实践 --网上生鲜超市系统的开发 专 ...
- Windows平台下Makefile学习笔记
来源:http://blog.csdn.net/clever101 决心学习Makefile,一方面是为了解决编译开源代码时需要跨编译平台的问题(发现一些开源代码已经在使用VS2010开发,但我还没安 ...
- Windows平台下NS2网络仿真环境的搭建
NS2(Network Simulator 2) 是一种针对网络技术的源代码公开的.免费的软件模拟平台,研究人员使用它可以很容易的进行网络技术的开发,而且发展到今天,它所包含的模块几乎涉及到了网络技术 ...
- windows平台下,有什么好的分屏软件推荐?3款让窗口布局更合理的App
windows平台下,有什么好的分屏软件推荐?Windows 10 系统为例,系统自带功能支持二分屏/三分屏/四分屏的分屏方式.比如用户通过鼠标将应用窗口拖到屏幕边缘,窗口会自动以占据 1/2 屏幕大 ...
- windows平台下的mysql启动等基本操作
一.windows下启动和停止mysql ======================= mysql安装好之后,需要启动mysql服务,否则无法访问到. 当我们在windows平台下,且使用二进制分发 ...
- [转]Windows平台下Makefile学习笔记
Windows平台下Makefile学习笔记(一) 作者:朱金灿 来源:http://blog.csdn.net/clever101 决心学习Makefile,一方面是为了解决编译开源代码时需要跨编译 ...
- Windows平台下的SOCKS5代理配置与网络安全
本文将介绍在Windows平台下配置SOCKS5代理的方法,并探讨该代理协议在网络安全中的应用.通过正确配置SOCKS5代理,用户可以提高网络连接的安全性和隐私保护. 在当今信息时代,网络安全问题备受 ...
- 在windows平台下php使用imagick库把pdf转换成(合并)图片
在windows平台下php使用imagick库把pdf转换成(合并)图片 开发背景 上传的word文档需要转换成图片,在网上找了资料,主要是先转换成pdf: 1. 在windows下用com组件加上 ...
最新文章
- python小项目案例-python_flask小项目实例-编一个小网站
- oracle创建外键约束的两种方式
- 上线数据导入的几个注意事项
- Rhythmk 学习 Hibernate 08 - Hibernate annotation 关联关系注解
- Cpp / 空指针对象调用函数的不同结果
- 在Linux上安装Memcached服务(自己测试过了)
- 撸个微信小程序的省市区选择器
- python 向量取整数_随机整数向量| 使用Python的线性代数
- 针对业务系统的开发,如何做需求分析和设计1
- 五子棋项目结束总结_五子棋比赛活动总结
- 一件虚拟连衣裙价值9500美元?然而这只是数字服装的开始……
- 苹果邮箱怎么登录qq邮箱_电子邮箱 电子邮箱格式怎么写
- 目标文件夹访问被拒绝,您需要权限来执行此操作
- 【7gyy】教大家设置一个类似手机的锁屏界面
- MT7621芯片性能,MT7621路由器参数介绍
- linux编译符号那些事儿
- 【计算机网络】PPP协议
- qtablewidget 复选框选中_QTableWidget中checkBox如何判断复选框是否被选中
- P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks论文笔记
- 最近火爆的chatgpt,程序员如何使用其进行代码开发