- 博客(25)
- 资源 (48)
- 收藏
- 关注
原创 (提交音频太快导致崩溃)应该是SubmitSourceBuffer允许的最大buffer值XAUDIO2_MAX_QUEUED_BUFFERS的限制
使用IAudio2SourceVoice->SubmitSourceBuffer来提交音频数据,会有一个数据队列,可以使用XAUDIO2_VOICE_STATE来获取状态,可以看到当前待播放的等待队列中还有多少Buff,提交音频数据过快的话,会导致程序崩溃,应该是因为下面的buffer最大值限制:// Numeric boundary values#define XAUDIO2_M
2016-04-28 16:52:06 4354
转载 DirectX XAudio2之音频图关键点
The set of all voices, with their contained effects and their interconnections, is referred to as the audio processing graph. The graph takes a set of audio streams from the client as input, processes
2016-04-28 14:39:52 1733 1
转载 DirectX Audio之XAudio2及XAPO 示例
With the inclusion of XAudio2 in Windows 8, there’s been renewed interest in learning how to use this API. The documentation on MSDNis of course a great place to start, and be sure to read through
2016-04-27 14:51:12 3487
转载 C++编程:XAudio2 API应用示例
C++编程:XAudio2 API应用示例XAudio2是一个跨平台的API,在Xbox 360及Windows中得到支持。在Xbox 360上, XAudio2作为一个静态库编译到游戏可执行文件中。在Windows上,XAudio2提供一个动态链接库(DLL)。以下例子只使用了其中的一部分功能,并不全面。详情请看微软技术页的XAudio2编程相关(英文)。使用XAudio2来播放
2016-04-26 17:45:02 5853
原创 XAPO中LockForProcess 音频格式设置以及数据处理后的音频格式
XAPO中LockForProcess 格式 是由与之绑定的IXAudioSubmixVoice来影响的。但是貌似只能影响通道数和采样率,其中的WAVEFORMATEX.wBitsPerSample是Float型,32bit,暂时没有发现怎么去修改这个数值。创建IXAudioSubmixVoice时会加入通道数和采样率,这两个数据要流向XAPO的话,通过IXAudioSubmixVoi
2016-04-26 14:23:21 1580
原创 给QPushButton添加二级菜单
给QPushButton添加菜单的示例四种方式:Qt学习之给QPushButton添加菜单ActionsContextMenu方法Qt学习之给QPushButton添加菜单CustomContextMenu方法Qt学习之给QPushButton添加菜单DefaultContextMenu方法QPushButton下拉式菜单(是否取消下拉三角,是否check)
2016-04-22 17:40:54 6729 2
原创 QPushButton下拉式菜单(是否取消下拉三角,是否check)
给QPushButton添加菜单的示例,前面已经有了三种方式:Qt学习之给QPushButton添加菜单ActionsContextMenu方法Qt学习之给QPushButton添加菜单CustomContextMenu方法Qt学习之给QPushButton添加菜单DefaultContextMenu方法今天再提供一种方式,就是给QPushButton添加下拉式菜单
2016-04-22 11:40:08 20314 10
原创 Qt(QLabel)实现滚动字幕
滚动字幕,也叫跑马,就是动态显示一行字符。前面实现是使用QTimer控制,直接在槽函数中截取字符串进行显示,只控制字符串在控件的一端显示,超出控件的部分并没有从控件的另一端循环显示出来。于是我重新实现了一种方法,或者说完善了前面的不足吧。使用QTimer控制显示的节奏,在paintEvent中进行截取显示。从左端被截掉的部分会从右端显示出来。难点在于,我们需要依据控件的宽度,控制字符串的显
2016-04-21 18:55:40 30640 16
原创 QT QLabel右跑马显示文字
开发中可能会需要加一些跑马的效果,会使界面看起来很炫,而且可以达到提醒用户的作用。简单实现了右跑马的效果,使用的是QLabel显示的文字,利用QTimer来控制跑马的速度:效果如图:示例代码:#ifndef TEXTTICKER_H#define TEXTTICKER_H#include #include class TextTicker :
2016-04-21 11:58:34 7646
原创 Qt QLabel左跑马显示文字
开发中可能会需要加一些跑马的效果,会使界面看起来很炫,而且可以达到提醒用户的作用。简单实现了左跑马的效果,使用的是QLabel显示的文字,利用QTimer来控制跑马的速度:#ifndef TEXTTICKER_H#define TEXTTICKER_H#include #include class TextTicker : public QWidget{ Q_OBJECT
2016-04-21 11:23:29 3152
转载 DirectX 因素:音频处理对象简介
中文原文地址:https://msdn.microsoft.com/zh-cn/magazine/dn201755.aspx英文原文地址:https://msdn.microsoft.com/en-us/magazine/dn201755.aspx?utm_source=tuicool&utm_medium=referralDirectX 的 XAudio2 组件更多只是方式在 W
2016-04-21 10:35:20 2493
原创 XAudio2学习之MonitorAPO
MonitorAPO 通过一种锁无关由应用程序初始化的通讯通道的方式来将音频数据传递给主线程。将MonitorAPO添加到上一篇的源码中,给一个source voice添加了两个特效。主要是使用管道,在APO中的DoProcess函数中将数据写入,然后在主线程中就可以读出来了。#include "DXUTLockFreePipe.h"typedef DXUTLockFreePipe Mo
2016-04-20 17:31:49 3425
原创 XAudio2学习之SimpleAPO
SimpleAPO通过与处理的样本数据相乘,应用一个简单的增益因子到音频数据。DirectX SDK中带了示例,我将其中的实例进行拆分后,来分开进行说明,也是将代码分离开。struct SimpleAPOParams{ float gain;};class __declspec( uuid("{5EB8D611-FF96-429d-8365-2DDF89A7C1CD}")) CS
2016-04-20 16:36:37 1902
原创 XAudio2学习之自定义音频特效
XAPO API允许创建跨平台音频处理对象(XAPO)以及微软跨平台音频创建工具(XACT)在Windows和Xbox 360上给XAudio2使用。XAPO API提供了IXAPO接口和CXAPOBase类,可以用来创建新的XAPO类型。IXAPO接口包含了创建一个新的XAPO所需要实现的所有方法。CXAPOBase类简单的继承实现了IXAPO接口,除了IXAPO::Process方法,因为
2016-04-20 08:54:13 2206
原创 XAudio2学习之音频特效库XAPOFX
XAPOFX是一个继承自XAPO接口的音频效果集合,用于XAudio2。XAPOFX包含了几种效果以及一个通用的创建音效实例的机制。XAPOFX中包含的效果如下表:EffectDescriptionParameter StructureParameter ConstantsRequirementsFXECHO
2016-04-19 09:09:00 2004
原创 XAudio2学习之内置音效:混响
XAudio2提供了两种内置音频特效,这两种音频特效以及它们的创建方式如下:1.创建XAPO对象;2.创建XAPO对象描述结构体对象,用于对XAPO信息进行描述;3.创建效果链结构体对象,用于持有描述结构体对象:包括两个成员变量:一个是持有的对象个数,一个是所有对象的数组;4.将效果链传递给XAudio2;5.释放XAPO对象;6.创建音效参数结构体对象,并设置需要的值;7.将参数结构体对象传递给XAudio2对象;8.启用或者禁用效果。对于参数结构体各个成员变量,上一篇文章也有说明,如果
2016-04-18 13:56:10 3877
原创 XAudio2学习之音效相关结构体
任何XAudio2 voice都可以持有一个音频效果链。你可以使用XAUDIO2_EFFECT_DESCRIPTOR数组来指定效果链。每个描述因子都包含了由客户端提供的指向音效对象的指针。这些对象必须实现APO接口。结构体定义为:typedef struct XAUDIO2_EFFECT_DESCRIPTOR { IUnknown *pEffect; BOOL Init
2016-04-16 18:07:55 1532
翻译 XAudio2音频特效
一个音频特效是这样一个对象,它获取输入的音频数据,在将数据继续传下去之前会在数据上做一些操作。一个音效可以用来执行各种不同的任务,包括向音频流添加混响以及监视音量的峰值。
2016-04-10 10:20:12 2744
原创 XAudio2学习之流化音频文件
流化是一个过程,在这个过程中,我们只需要在内存中维护一小块内存来播放音频文件。这样我们就可以使用很大的音频文件作为背景音乐,而不占用很大的内存。当我们流化一个音频文件的时候,音频数据是从硬盘上一块一块的读取,而不是将整个文件一次性全部加载。流化是通过异步读取音频数据到硬盘缓冲区队列来完成的。当一个缓冲区填充好数据后,提交给source voice。当source voice播放完成一个缓冲区后,这
2016-04-07 18:01:41 4004
原创 XAudio2学习之循环播放音频数据
有时候一个音频特效需要多次播放,比如一个连击动作的声效。当然你可以多次打开文件,读取内容然后播放;也可以读取一次,创建多个XAUDIO2_BUFFER,提交多次进行播放;最好的方法是使用XAUDIO2_BUFFER的Loop功能来进行播放,只需要读取一次文件,创建一个XAUDIO2_BUFFER,提交一次,就可以实现播放多次的需求。
2016-04-05 18:08:24 2747
原创 XAudio2学习之混音
XAudio2不仅可以进行采样率转换,还可以进行混音。所谓混音就是将多路音频混合成一路进行输出。混音主要是IXAudio2SubmixVoice进行此项功能。数据由IXAudio2SourceVoice提交后,流向IXAudio2SubmixVoice进行采样率转换(如果需要的话),并且进行音频混合,最后形成一路采样率和IXAudio2MasteringVoice一致的音频流,由IXAudio2MasteringVoice输出到音频输出设备。
2016-04-03 17:41:37 2407
原创 XAudio2学习之组合音频方法作为操作集
多个XAudio2方法可以作为一个操作集的一部分被调用。这些方法都使用OperationSet作为参数,这样可以允许他们作为延迟组的一部分被调用。在某个特定的时刻,需要改变的整个集合可以被同时应用,通过调用函数IXAudio2::CommitChanges时使用那组的OperationSet识别码。这样,就允许客户端代码的不同部分分别应用原子改变到音频图而不相互冲突。推荐的做法是,客户端使用一个全
2016-04-02 22:31:11 1140
原创 XAudio2学习之动态添加删除Voice
你可以随时通过添加或者删除Voices来改变音频图,一个voice可以输出到几个voices或者voices组成的一个长链。添加或者删除voices对于音频图有很大的影响。音频图如下:往音频图中添加或者删除voices和往链表中添加或者删除节点是相似的。添加voice:设置音频图中一个voice(例如pParentVoice)的输出voice为新添加的voice(例如pNe
2016-04-02 17:02:01 1079
原创 XAudio2学习之调节音调
频率比有两个地方可以设置。一个是在创建IXAudio2SourceVoice对象的时候,一个是调用IXAudio2SourceVoice::SetFrequencyRatio来调节。在创建IXAudio2SourceVoice对象的时候,第三个参数影响音高(音调)和第四个参数会影响频率比的设置。HRESULT CreateSourceVoice( IXAudio2So
2016-04-02 15:17:33 1868
原创 XAudio2学习之调节音量
XAudio2音量调节分为全局和声道调节以及连接音量调节。所谓全局就是说设置了音量后会影响整个音频流的声音大小;声道调节就是说只调节某一个声道的音量大小;连接音量设置是说设置voice与其输出voice之间的声道映射音量。举个例子来说明:IXAudio2SourceVoice->IXAudio2SubmixVoice->IXAudio2MasteringVoice由三个voice组成的音频
2016-04-01 18:23:07 2299
XAudio2学习之循环播放音频数据.zip
2016-04-05
XAudio2学习之多次播放一个音效.zip
2016-04-05
fontconfig-master
2016-11-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人