19,468
社区成员
发帖
与我相关
我的任务
分享
DSBUFFERDESC dsbdesc;
// Set up DSBUFFERDESC structure.
memset(&dsbdesc, 0, sizeof(DSBUFFERDESC)); // Zero it out.
dsbdesc.dwSize = sizeof(DSBUFFERDESC);
// Need controls (pan, volume, frequency).
dsbdesc.dwFlags = DSBCAPS_CTRLPAN | DSBCAPS_CTRLVOLUME | DSBCAPS_CTRLFREQUENCY; // assumes that the sound is played often
dsbdesc.dwBufferBytes = pcmwf->nSamplesPerSec * pcmwf->nBlockAlign;;
dsbdesc.lpwfxFormat = pcmwf; // Create buffer.
HRESULT hRes;
if( DS_OK != (hRes = m_lpDirectSound->CreateSoundBuffer(&dsbdesc, &m_pDsb, 0)) ) {
// Failed.
DSError(hRes);
m_pDsb = 0;
return FALSE;
}
m_pDsb->SetVolume(&dwVol);
m_pDsb->SetFrequency(dwFreq);