1.初始化并 设置音频设备的合作级别 cooperative level
IDirectSound8* g_ds;
IDirectSoundBuffer8* g_ds_buffer;
DirectSoundCreate8(NULL, &g_ds, NULL);
g_ds->SetCooperativeLevel(g_hwnd, DSSCL_NORMAL);
2.
设置 WAVEFORMATEX wave_format (关于wav音频文件的参数设置)
DSBUFFERDESC ds_buffer_desc;
// zero out strcutre
ZeroMemory(&ds_buffer_desc, sizeof(DSBUFFERDESC));
ds_buffer_desc.dwSize = sizeof(DSBUFFERDESC);
ds_buffer_desc.dwFlags = DSBCAPS_CTRLVOLUME;ds_buffer_desc.dwBufferBytes = wave_format.nAvgBytesPerSec * 2; // 2 seconds
ds_buffer_desc.lpwfxFormat = &wave_format;
3.创建缓冲区
g_ds->CreateSoundBuffer(&ds_buffer_desc, &ds, NULL)
ds->QueryInterface(IID_IDirectSoundBuffer8, (void**)&g_ds_buffer);
ds->Release();
4.锁定缓冲区