- 博客(10)
- 资源 (157)
- 问答 (1)
- 收藏
- 关注
原创 WebRTC笔记之十一:最简单的聊天升级版
一.环境WebRTC版本:2021.03.07的master分支,详见WebRTC学习之二:编译Qt版本:Qt5.12.6 VS2017二.效果三.实现在上一篇WebRTC笔记之十:最简单的聊天(音频+视频)中,音频和视频分别使用了一个webrtc::Call对象,这里精简代码,让音频和视频公用一个webrtc::Call对象,如下所示:bool QHMediaEngine::SetupCall(){ if(video_engine_) { ..
2017-01-17 17:43:45 13027 25
原创 WebRTC笔记之十:最简单的聊天(音频+视频)
一.环境WebRTC版本:2021.03.07的master分支,详见WebRTC学习之二:编译Qt版本:Qt5.12.6 VS2017二.效果三.实现这里直接将WebRTC笔记之八:最简单的音频聊天(使用WebRtcVoiceEngine)和WebRTC笔记之九:最简单的视频聊天(使用WebRtcVideoEngine)组合起来。为了使代码更加简洁,我们可以参考WebRTC源码,使用多继承。比如视频部分如下所示:class QHVideoEngine : publi..
2017-01-11 08:58:27 13596 4
原创 WebRTC笔记之七:函数的异步执行
一.理论这部分转自转自:[WebRTC架构分析]WebRTC的线程模型 作者:陈子兴为了降低系统的复杂性,提高系统的运行效率,WebRTC设计了一套多线程框架,并且做了精心的设计。下来我们就分析一下 WebRTC 中的线程模型。1.线程结构图WebRTC 的线程模型相对复杂一些,哪些模块要在哪些线程下运行,都是有规定的。要想更好的理解 WebRTC 的实现,分析 WebRTC 的线程框架是必不可少的。线程框架结构图如下:图中每一个矩形框都代表了一个线程,我们这里列出了 11 个线程,当然
2017-01-09 12:12:04 6914 1
原创 WebRTC笔记之六:精炼的信号和槽机制
关于信号和槽有一个非常精炼的C++实现,作者是Sarah Thompson,该实现只有一个头文件sigslot.h,源码在:http://sigslot.cvs.sourceforge.net/viewvc/sigslot/sigslot/sigslot.h?revision=1.1.1.1&content-type=text%2Fplain在WebRTC中,sigslot .h是其基
2017-01-05 09:06:52 5969 1
原创 WebRTC笔记之八:最简单的音频聊天(使用WebRtcVoiceEngine)
一.环境WebRTC版本:2021.03.07的master分支,详见WebRTC学习之二:编译Qt版本:Qt5.12.6 VS2017二.效果三.实现1.数据发送翻看WebRTC源码,可以发现rtp/rtcp的发送最终会调用到cricket::MediaChannel::NetworkInterface接口中的SendPacket和SendRtcp方法。因此我们只要子类化这个接口,并重写SendPacket和SendRtcp方法,在这两个方法中用udp协议将数据发送出去。当然.
2017-01-03 14:08:45 6997 2
原创 WebRTC笔记之九:最简单的视频聊天(使用WebRtcVideoEngine)
一.环境WebRTC版本:2021.03.07的master分支,详见WebRTC学习之二:编译Qt版本:Qt5.12.6 VS2017二.效果这里使用的是虚拟摄像头,虚拟摄像头那家强,当属OBS的插件。右下角是本地视频,比较大的是远端视频。三.实现1.数据发送翻看WebRTC源码,可以发现rtp/rtcp的发送最终会调用到cricket::MediaChannel::NetworkInterface接口中的SendPacket和SendRtcp方法。因此我们只要子类化这个.
2017-01-03 13:59:24 7372 1
原创 Qt之创建桌面和开始菜单快捷方式
将安装好的酷狗拷贝到C:\data目录中1.创建桌面快捷方式QFile::link("C:/data/KuGou.exe", QStandardPaths::writableLocation(QStandardPaths::DesktopLocation).append("/").append("KuGou.lnk"));2.创建开始菜单快捷方式QString startMenuPath=QSta...
2017-01-02 19:50:28 12604 1
原创 Qt编译错误之out of memory allocating 1073745919 bytes
这个错误也就是“编译器的堆空间不足”。由于资源文件qrc过大,超出分配的内存范围,编译的时候打开任务管理器,会发现内存飙升。可以在pro文件中加入:CONFIG+=resources_big参考链接:http://stackoverflow.com/questions/39236670/compiling-10mb-resource-files-with-qrc-i
2017-01-01 10:50:45 15061 3
原创 Qt基础之二十五:动画框架(Animation Framework)
Qt动画框架的设计目的是提供一种简单的方法用于创建动态和平滑的GUI。通过作用于Qt属性,Qt动画框架为窗口部件和其他QObject对象的动画操作提供了非常大的自由。Qt动画框架也能用于图形/视图(Graphics View)框架中。在本文中,我将阐述了Qt动画框架的基本结构,并提供例子来演示该框架如何运用相关技术实现QObjects和graphics items的动画效果。
2017-01-01 10:04:34 13200 1
20种数据结构和算法的C++实现
2017-11-17
Qt下用QSplitter实现滑动窗口
2017-11-16
QML实现图像处理,包括浮雕、锐化等效果
2017-11-14
WebRTC学习之四:最简单的语音聊天
2017-01-10
WebRTC学习之三:录音和播放
2016-12-26
Qt国际化(I18N)
2023-12-31
QHVlcPlayer.rar
2021-02-27
Qt+libVLC+QWidget渲染
2021-02-27
Qt调用libVLC实现播放器
2021-02-26
TestUI.rar
2021-02-09
QHOpenGLPlayer.rar
2021-01-10
基于Qt和SDL2播放PCM
2021-01-05
Qt5版NeHe OpenGL教程6-10
2018-05-17
Qt5版Nehe OpenGL教程1-5
2018-05-14
Qt调用OpenGL API实现彩色旋转立方体
2018-05-09
MyTcpClient
2018-03-16
Boost.Asio C++ Network Programming随书源码
2018-01-29
Boost.Asio C++ Network Programming(高清,带书签,可复制)
2018-01-29
Effective Modern C++ 英文原版(带书签)
2018-01-27
++i和i++哪个更高效
2023-02-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人