DirectSound简介
1. DirectSound特性:速度快、可控制性强
(1) 当硬件空闲时自动启用硬件加速
(2) 不受数量限制的声源混音
(3) 声音重现延迟时间短暂
(4) 与Direct3D接口简单的3D声音定位效果
(5) 自动将输入的Wave数据装换成与输出匹配的格式—格式输入为复杂格式
(6) 支持属性设置,利用硬件的新特性而不改变API函数
2. 从声音缓冲区对象:代表一个声源,这个声源既可以是静态的声音对象,也可以是动态的声音对象。静态的声音对象是指声音数据一次性读入内存,它一般适用于较短的声音。动态的声音对象是指声音数据必须隔一段时间传送一部分到缓冲区中,所有缓冲区都含有脉冲编码调制(PCM)格式的声音样本数据
播放从声音缓冲区对象时,DirectSound从每个缓冲区中取出数据,然后在主缓冲区中进行混音(硬件混音和DirectSound软件混音),然后送往输出设备
3. DirectSound只支持(.wav)格式的声音,不支持MIDI的回放
DirectSoundCapture独立与DirectSound,是DirectX中的一个组件,它允许捕获wave声音
4. 声音格式:声道数、采样率、采样点的位数、格式标签——标识采样数据的解释方法(格式信息被包含在WAVEFORMATEX结构中)
5. 设置DirectSound
(1) 步骤:1.为声音设备获得一个“全局唯一标志符(GUID)”(可选)
2.生成DirectSound对象
3.设置协作优先级
4.设置主缓冲区对象的格式(可选)
(2)枚举输出设备:DirectSoundEnumerate函数(一般不用,DirectSound对象通常初始化系统中最好的设备)
(3)生成DirectSound对象:DirectSoundCreate函数
(4)设置协作优先级:SetCooperativeLevel方法——调用该方法后,把DirectSound对象捆绑到一个窗口上,并且决定了应用程序和其它程序间怎样分享声音设备
(5)设置主缓冲区格式:协作优先级至少设置为DSSCL_PRIORITY
(6)改变扬声器配置:GetSpeakerConfig和SetSpeakerConfig
(7)获取设备支持能力:GetCaps方法会提供需要的设备信息(DSCAPS结构)
6. 属性设置:IKsPropertySet接口(QuerySupprot方法、Get方法、Set方法)
7.