WebRTC Precompiled 使用
最近研究webrtc native code,但源码太大(10GB以上)又需要翻墙,就找了个预编译的版本https://sourcey.com/precompiled-webrtc-libraries
下面把引入库的经验写下来
首先需添加宏定义 #define WEBRTC_WIN 不然会报以下错误
Must define either WEBRTC_WIN or WEBRTC_POSIX.
接着还需定义 #define NOMINMAX 因为windows.h中的min max函数与std标准库的冲突
这时只剩下两个错误
C4996 '_vsnwprintf': This function or variable may be unsafe. Consider using _vsnwprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
加入#define _CRT_SECURE_NO_WARNINGS
还有一个错误,不过编译已经通过了
E1574 静态断言失败,原因是 ".data() and .size() are private"
LNK2038 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”
加入预处理#define _ITERATOR_DEBUG_LEVEL 0
可能是Debug项目用到了Release的库
LNK2038 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”
项目属性-C/C++-代码生成-运行库 改为多线程(/MT)
示例如下,输出视频设备数量
#define WEBRTC_WIN
#define NOMINMAX
#define _ITERATOR_DEBUG_LEVEL 0 #pragma comment(lib, "libwebrtc_full.lib")
#pragma comment( lib, "strmiids.lib" )
#pragma comment(lib, "winmm.lib ") #include "webrtc/modules/video_capture/video_capture_factory.h" #include <iostream> int main()
{
std::unique_ptr<webrtc::VideoCaptureModule::DeviceInfo> info(webrtc::VideoCaptureFactory::CreateDeviceInfo()); if (info) {
int num_devices = info->NumberOfDevices();
std::cout << (num_devices);
} std::cout << "Hello World!\n";
}
WebRTC Precompiled 使用的更多相关文章
- 使用WebRTC搭建前端视频聊天室——数据通道篇
本文翻译自WebRTC data channels 在两个浏览器中,为聊天.游戏.或是文件传输等需求发送信息是十分复杂的.通常情况下,我们需要建立一台服务器来转发数据,当然规模比较大的情况下,会扩展成 ...
- 使用WebRTC搭建前端视频聊天室——点对点通信篇
WebRTC给我们带来了浏览器中的视频.音频聊天体验.但个人认为,它最实用的特性莫过于DataChannel——在浏览器之间建立一个点对点的数据通道.在DataChannel之前,浏览器到浏览器的数据 ...
- 使用WebRTC搭建前端视频聊天室——信令篇
博客原文地址 建议看这篇之前先看一下使用WebRTC搭建前端视频聊天室——入门篇 如果需要搭建实例的话可以参照SkyRTC-demo:github地址 其中使用了两个库:SkyRTC(github地址 ...
- 使用WebRTC搭建前端视频聊天室——入门篇
http://segmentfault.com/a/1190000000436544 什么是WebRTC? 众所周知,浏览器本身不支持相互之间直接建立信道进行通信,都是通过服务器进行中转.比如现在有两 ...
- WebRTC的一个例子
内容引自:一个WebRTC实现获取内网IP的例子(穿透NAT) 网页代码直接复制到下面(如果以上链接被墙,可以直接将下面代码保存文件,然后在浏览器打开即可,不支持IE浏览器): <!doctyp ...
- WebRTC音频预处理单元APM的整体编译及使用
正文 行的gnu静态库链接路径是针对NDK版本 r8d 的,如读者版本不匹配,请自行找到 libgnustl_static.a 静态库的路径进行替换. 3)本示例并不打算编译 WebRTC 的测试工程 ...
- 单独编译使用WebRTC的音频处理模块
块,每块个点,(12*64=768采样)即AEC-PC仅能处理48ms的单声道16kHz延迟的数据,而 - 加载编译好的NS模块动态库 接下来只需要按照 此文 的描述在 android 的JAVA代码 ...
- webrtc中APM(AudioProcessing module)的使用2
这个其实就是从Audio_processing.h中拿出来的. APM should be placed in the signal chain as close to the audio hardw ...
- webrtc中APM(AudioProcessing module)的使用
一,实例化和配置 AudioProcessing* apm = AudioProcessing::Create(0); //这里的0指的是channelID,只是一个标注那个通道的表示 apm-> ...
随机推荐
- Node.js如何执行cmd
最近正好因业务的一个需求需要研究如何根据vscode的插件名来下载对应的插件以解决之前将插件打包上传到服务器上面导致的延迟问题(插件体积小还好说,如果体积过大,即便是压缩打成zip包,如果同一时刻很多 ...
- Python学习案例之Web版语音合成播报
前言 语音合成技术能将用户输入的文字,转换成流畅自然的语音输出,并且可以支持语速.音调.音量设置,打破传统文字式人机交互的方式,让人机沟通更自然. 应用场景 将游戏场景中的公告.任务或派单信息通过语音 ...
- jeecg入门操作—一对多表单开发
一.创建主表 创建订单主表(torder_main) 二.创建附表客户信息表(torder_customer) 设置附表页面外键不可见 设置附表外键 三.创建附表机票 信息表(torder_tic ...
- 石家庄地铁系统开发(java web版)(一)
今天所完成的任务: 在Mysql数据库中创建了sjzsubstop表和sjzsubway表 sjzsubstop表用于录入所有站点名称和与之对应的stopid(作为主码) sjzsubway表用于录入 ...
- VS + QT 出现 LNK2001 无法解析的外部符号 QMetaObject 的问题
在一个QT项目中新建一个带QObject定义的类后 (不是继承),可能会出现LNK2001 的错误,这是由于IDE没有自动为新建的类生成 moc_XXXX.cpp 文件导致的. 一种做法是手动生成mo ...
- PowerBi利用Python Script绕过ODBC来导入MongoDB数据
- 2018年第九届蓝桥杯题目(C/C++B组)汇总
第一题 标题:第几天 2000年的1月1日,是那一年的第1天. 那么,2000年的5月4日,是那一年的第几天? 注意:需要提交的是一个整数,不要填写任何多余内容. 解题思路: 1. 判断2月有几天, ...
- 使用 mysqltuner 检测 mysql 稳定性
github : https://github.com/major/MySQLTuner-perl MySQLTuner是一个用Perl编写的脚本,它可以帮助您进行MySQL配置,并提出增强性能和稳定 ...
- Re.多项式求逆
前言 emmm暂无 多项式求逆目的 顾名思义 就是求出一个多项式的摸xn时的逆 给定一个多项式F(x),请求出一个多项式G(x),满足F(x)∗G(x)≡1(modxn),系数对998244353取模 ...
- ubuntu apt update failed to fetch
When I do command sudo apt update, always get belowing errors: Err:1 http://archive.ubuntu.com/ubunt ...