下面是SDK里面的说明
1. 创建设备对象
Call DirectSoundCreate8 to create an object that supports the IDirectSound8 interface. This object usually represents the default playback device. Optionally, you can first enumerate available devices to obtain the GUID of the device you want to use, and pass this to DirectSoundCreate8.
2. 建立二级缓冲区
Use IDirectSound8::CreateSoundBuffer to create a buffer object that will contain sound data. Such buffers are called secondary buffers, to distinguish them from the primary buffer, which is the object that mixes all sounds.
3. 获取PCM数据
把数据读进主缓冲区
4. 把数据读进缓冲
Prepare the secondary buffer for a write operation by calling IDirectSoundBuffer8::Lock. In most cases, this method returns a single memory address. Copy data from your private buffer to that address, and then call IDirectSoundBuffer8::Unlock.
5. 播放
Play the sound by calling IDirectSoundBuffer8::Play. You can instruct the buffer either to stop when it reaches the end, or to continue playing over and over again until you call IDirectSoundBuffer8::Stop. You can start and stop the buffer repeatedly; however, only one instance of the sound can play at one time, unless you create other buffers containing the same data. Any number of buffers can be played at a given time, and mixing is done automatically.
The preceding steps apply to the simplest possible scenario, that of a short sound that fits into a buffer of a reasonable size. Typically, sounds that last more than a few seconds are streamed: that is, data that has already been played is periodically replaced by new data.