DirectX音频编程:从音效到背景音乐
1. 编程DirectSound
1.1 理解环境音效
环境音效这一术语借鉴自环境光。想象天花板灯具里的灯泡,它发出的光基本能填满整个房间(除非房间非常大且照明不佳)。当光线弥漫整个房间时,就称其为环境光,即光似乎没有明确的来源。
与之类似,环境音效指的是看似没有方向或来源的声音。它由扬声器均匀发出,没有任何位置效果。这是大多数游戏(至少是大多数旧游戏)中最常见的音效类型,而现代游戏倾向于使用定位音效。
DirectX中处理环境音效的组件是DirectSound8,它是DirectX的主要声音混合器。虽然从技术上讲,这个组件被称为DirectX Audio,但实际上是使用各个独立的组件,DirectSound8就是其中之一,它能够混合和播放多声道的.WAV声音缓冲区(用于存储二进制声音数据的一块内存区域)。
1.2 创建DirectSound对象
要使用DirectSound,首先需要创建一个标准的DirectX8对象,然后用它来创建DirectSound。可以这样声明对象:
Dim dx As DirectX8
Dim ds As DirectSound8
声明对象后,可以这样实例化对象:
Set dx = New DirectX8
Set ds = objDX.DirectSoundCreate("")
可以看到,DirectSound对象由Dir