摘要: 这篇文章主要给大家介绍下如何用DirectSound打造一个简易播放器,因为篇幅有限且代码逻辑较为复杂,我们只介绍下核心技术内容。该播放器主要包括以下功能: 播放、暂停 播放进度提示。 1. DirectSound播放概念简介 1.1 播放相关概念 首先要介绍下DirectSound的设计理念: !阅读全文
posted @ 2018-02-15 13:36 lgxZJ 阅读(75) 评论(1) 编辑
摘要: DirectSound只支持Wav格式的音频文件,在创建次缓冲区之前需要先确定播放的Wav音频数据的格式。如果是从本地Wav文件播放,则需要先读出它的数据格式。 1. Wav音频格式布局 Wav是WAVE音频格式文件的后缀名,WAVE音频格式全称是Waveform Audio File Format阅读全文
posted @ 2018-02-04 11:40 lgxZJ 阅读(20) 评论(0) 编辑
摘要: 最近老是听说协程很火,心也很痒痒想知道这到底是个什么东西,今天就花功夫看了看Boost库里的Coroutine。谁不曾想Boost库这么难搞,等到要写代码时编译出错了。其实这也不能怪Boost,大部分Boost库都是以头文件的形式提供的,直接include就可以了。但是Coroutine这个东西用了阅读全文
posted @ 2018-01-14 19:55 lgxZJ 阅读(84) 评论(0) 编辑
摘要: DirectSound是DirectX组件之一,提供了对音频设备的捕获和播放能力,同时它也是唯一几个支持Xp系统的音频技术之一。 DirectSound主要有以下特点: 优点: 播放音频 低延迟 。 硬件资源控制 。 同时 播放 多个 声音。 控制硬件缓冲区的使用 优先级 (DirectSound使阅读全文
posted @ 2018-01-13 15:24 lgxZJ 阅读(52) 评论(0) 编辑
摘要: Qt提供了对Javascript的良好支持, 如果查阅过文档你就知道Qt有两个不同的Js封装引擎: QScriptEngine QJSEngine QScriptEngine出现的比较早(自Qt4.3始),基于WebKit的JavaScriptCore引擎,提供的api相对来说比较丰富,但是已经被官阅读全文
posted @ 2017-12-31 17:09 lgxZJ 阅读(185) 评论(1) 编辑
摘要: 这次讲Qt Style Sheet(QSS),QSS是一种与CSS类似的语言,实际上这两者几乎完全一样。既然谈到CSS我们就有必要说一下盒模型。 1. 盒模型(The Box Model) 在样式中,每一个UI控件都可以抽象成一个盒模型: ![box model pic] 盒模型由4个同心矩形组成,阅读全文
posted @ 2017-12-24 12:35 lgxZJ 阅读(93) 评论(0) 编辑
摘要: 最近想学习下Qt的自定义界面,因此花了点时间看了下QStyle,,,,结果很难受,这一块涉及到一大块GUI的具体实现方式,看得我很头疼。想看第一手资料并且英语功底不错的可以直接上qt[文档][doc],下面我会以易懂的方式简单讲解下。 1. Qt控件结构简介 首先我们要来讲讲GUI控件结构,这里以Q阅读全文
posted @ 2017-12-14 17:28 lgxZJ 阅读(126) 评论(0) 编辑
摘要: 本文我们通过一个读取Xml文件的小例子来学习QXmlStreamReader。 Xml 简介 Xml的全称是可扩展标记语言( EX tensible M arkup L anguage),同HTML一样是一种标记语言。但是与HTML不同,XML: 被设计为具有 自我描述性 。 它 没有预定义标签 ,阅读全文
posted @ 2017-12-03 14:37 lgxZJ 阅读(222) 评论(0) 编辑
摘要: 最近比较忙,今天此才有时间来继续学习下Qt。Qt的拖拽可以按字面意思分为 拖 和 拽 两部分。一般来说我们常见的拖拽分别由两个程序合作完成。例如我们经常把桌面的文件拖拽进其他目录: ![desktop drag] 这个拖拽在Qt中由两方合作完成,一个是桌面窗口另一个是目录窗口,桌面发起“拖”动作,目阅读全文
posted @ 2017-11-22 14:29 lgxZJ 阅读(327) 评论(0) 编辑
摘要: 从Vista开始,windows底层的音频架构发生了改变:原本是底层API的waveXXX、mixerXXX等都在[Core Audio APIs][core audio apis link]的基础上进行了重构,上升为了高层API;底层API变为Core Audio API。 由于这个原因,在利用遗阅读全文
posted @ 2017-10-15 14:43 lgxZJ 阅读(58) 评论(0) 编辑
摘要: 这是Model/View中的最后一篇了,Qt官方显然弱化了Controller在MVC中的作用,提供了一个简化版的Delegate;甚至在Model/View框架的使用中,提供了默认的委托,让这个控制器愈加淡出开发者的实现。 实际上,Qt Model/View框架中的MVC概念是有误的,显而易见的就阅读全文
posted @ 2017-10-01 20:13 lgxZJ 阅读(95) 评论(0) 编辑
摘要: 这是上一篇文章的续篇,关于自定义View。 多个View内部可以映射到同一个数据模型,也可以映射不同的数据结构;可以使用所有数据,也可以只使用部分数据。因为视图层与数据层的分离,操作相对比较灵活。 1. 实现一个自定义View 这里我们来实现一个自定义View,住要包含一下几个功能: 1. 图案自定阅读全文
posted @ 2017-09-24 16:31 lgxZJ 阅读(83) 评论(0) 编辑
摘要: 众所周知,Qt提供了一套Model/View框架供开发者使用,Model用来提供数据, View则用来提供视觉层的显示。实际上这是一套遵循MVC设计模式的GUI框架,因为Qt还提供了默认的Delegate作为Controller来作为控制器。 ![MVC image] MVC的好处这里就不多说了,为阅读全文
posted @ 2017-09-14 23:09 lgxZJ 阅读(380) 评论(1) 编辑
摘要: Libmicrohttpd简介 GNU Libmicrohttpd是一个用来在项目中内嵌http服务器的C语言库,它具有以下几个非常鲜明的特点: 1. C语言库,小而快。 2. API非常简单,且都是 可重入 的。 3. 兼容HTTP1.1。 4. 支持4种多线程模型(select、poll、pth阅读全文
posted @ 2017-08-13 17:14 lgxZJ 阅读(433) 评论(0) 编辑
摘要: 最近写个Qt demo,想要使用压缩和解压多个文件的功能,并不使用额外进程。网上参考了很多资料,发现只有QuaZip比较适合我的需求。但是QuaZip只提供源码,因此需要自己来编译。 QuaZip简介 QuaZIP is a simple C++ wrapper over Gilles Vollan阅读全文
posted @ 2017-07-30 23:42 lgxZJ 阅读(252) 评论(0) 编辑
摘要: 最近项目中要在Qt中使用CEF(Chromium Embedded Framework),在这里总结下其中的几个要点。 下载合适的CEF版本 关于CEF的简介我们这里就不做介绍了,下载CEF可以有2种选择: 1. 源码:强烈不建议下载源代码并编译构建(学习代码除外),下载源码需要你翻墙、有良好的网速阅读全文
posted @ 2017-07-20 22:30 lgxZJ 阅读(853) 评论(2) 编辑
摘要: 1. 私企国企 程序员找工作时一定要考虑清楚自己想要什么:进国企的话工作比较轻松,朝九晚五,但是薪资可能会低一些;进私企通常会有一份高一点的工资,但是工作时间会比较长,像我就是10:00 21:30这个时间段,加起来工作时间有12左右。本身技术公众就是基层工作,脑力劳动搬砖,强度会普遍大。 2.住宿阅读全文
posted @ 2017-07-08 23:27 lgxZJ 阅读(217) 评论(0) 编辑
摘要: NuGet是微软开发平台下的包管理软件,使用它你可以非常方便的将一些第三方的库、框架整合进自己的项目中,省去了不少麻烦的配置过程。但是从官方文档上来看,貌似NuGet对C++的支持不是很好,并且在现阶段推荐使用CoApp来简化包的构建。 1. 环境要求 NuGet 2.5 及以上(较新版本才加入了对阅读全文
posted @ 2017-06-25 16:54 lgxZJ 阅读(282) 评论(0) 编辑
摘要: 1.为什么system_error "....report error conditions originating from the operating system or low level application program interfaces." 报告 源于 操作系统 或 低层程序接口阅读全文
posted @ 2017-04-22 16:05 lgxZJ 阅读(369) 评论(0) 编辑
摘要: 预定义异常类 这个头文件包含的内容非常简单,只包含 9个异常类,均从exception类派生 ,因此我们用三张图来描述: ![logic error image] ![runtime error image] ![uses image] 这里仅解释两点: overflow : 指值的大小超过 整型 阅读全文
posted @ 2017-04-04 15:36 lgxZJ 阅读(145) 评论(0) 编辑
摘要: 这篇文章主要给大家介绍下如何用DirectSound打造一个简易播放器,因为篇幅有限且代码逻辑较为复杂,我们只介绍下核心技术内容。该播放器主要包括以下功能: 播放、暂停 播放进度提示。 1. DirectSound播放概念简介 1.1 播放相关概念 首先要介绍下DirectSound的设计理念: !阅读全文
posted @ 2018-02-15 13:36 lgxZJ 阅读(75) 评论(1) 编辑
摘要: DirectSound只支持Wav格式的音频文件,在创建次缓冲区之前需要先确定播放的Wav音频数据的格式。如果是从本地Wav文件播放,则需要先读出它的数据格式。 1. Wav音频格式布局 Wav是WAVE音频格式文件的后缀名,WAVE音频格式全称是Waveform Audio File Format阅读全文
posted @ 2018-02-04 11:40 lgxZJ 阅读(20) 评论(0) 编辑
摘要: 最近老是听说协程很火,心也很痒痒想知道这到底是个什么东西,今天就花功夫看了看Boost库里的Coroutine。谁不曾想Boost库这么难搞,等到要写代码时编译出错了。其实这也不能怪Boost,大部分Boost库都是以头文件的形式提供的,直接include就可以了。但是Coroutine这个东西用了阅读全文
posted @ 2018-01-14 19:55 lgxZJ 阅读(84) 评论(0) 编辑
摘要: DirectSound是DirectX组件之一,提供了对音频设备的捕获和播放能力,同时它也是唯一几个支持Xp系统的音频技术之一。 DirectSound主要有以下特点: 优点: 播放音频 低延迟 。 硬件资源控制 。 同时 播放 多个 声音。 控制硬件缓冲区的使用 优先级 (DirectSound使阅读全文
posted @ 2018-01-13 15:24 lgxZJ 阅读(52) 评论(0) 编辑
摘要: Qt提供了对Javascript的良好支持, 如果查阅过文档你就知道Qt有两个不同的Js封装引擎: QScriptEngine QJSEngine QScriptEngine出现的比较早(自Qt4.3始),基于WebKit的JavaScriptCore引擎,提供的api相对来说比较丰富,但是已经被官阅读全文
posted @ 2017-12-31 17:09 lgxZJ 阅读(185) 评论(1) 编辑
摘要: 这次讲Qt Style Sheet(QSS),QSS是一种与CSS类似的语言,实际上这两者几乎完全一样。既然谈到CSS我们就有必要说一下盒模型。 1. 盒模型(The Box Model) 在样式中,每一个UI控件都可以抽象成一个盒模型: ![box model pic] 盒模型由4个同心矩形组成,阅读全文
posted @ 2017-12-24 12:35 lgxZJ 阅读(93) 评论(0) 编辑
摘要: 最近想学习下Qt的自定义界面,因此花了点时间看了下QStyle,,,,结果很难受,这一块涉及到一大块GUI的具体实现方式,看得我很头疼。想看第一手资料并且英语功底不错的可以直接上qt[文档][doc],下面我会以易懂的方式简单讲解下。 1. Qt控件结构简介 首先我们要来讲讲GUI控件结构,这里以Q阅读全文
posted @ 2017-12-14 17:28 lgxZJ 阅读(126) 评论(0) 编辑
摘要: 本文我们通过一个读取Xml文件的小例子来学习QXmlStreamReader。 Xml 简介 Xml的全称是可扩展标记语言( EX tensible M arkup L anguage),同HTML一样是一种标记语言。但是与HTML不同,XML: 被设计为具有 自我描述性 。 它 没有预定义标签 ,阅读全文
posted @ 2017-12-03 14:37 lgxZJ 阅读(222) 评论(0) 编辑
摘要: 最近比较忙,今天此才有时间来继续学习下Qt。Qt的拖拽可以按字面意思分为 拖 和 拽 两部分。一般来说我们常见的拖拽分别由两个程序合作完成。例如我们经常把桌面的文件拖拽进其他目录: ![desktop drag] 这个拖拽在Qt中由两方合作完成,一个是桌面窗口另一个是目录窗口,桌面发起“拖”动作,目阅读全文
posted @ 2017-11-22 14:29 lgxZJ 阅读(327) 评论(0) 编辑
摘要: 从Vista开始,windows底层的音频架构发生了改变:原本是底层API的waveXXX、mixerXXX等都在[Core Audio APIs][core audio apis link]的基础上进行了重构,上升为了高层API;底层API变为Core Audio API。 由于这个原因,在利用遗阅读全文
posted @ 2017-10-15 14:43 lgxZJ 阅读(58) 评论(0) 编辑