|
我的声音播放都没有问题,为什么调用这个会失败?这个函数只有一个参数,为什么会失败呢?还跟什么有关?MSDN上介绍的很少.
//以下是主要代码
//缓冲区描述信息
DSBUFFERDESC dsbd;
memset(&dsbd,0,sizeof(dsbd));
dsbd.dwSize=sizeof(dsbd);
dsbd.dwFlags=DSBCAPS_STATIC|DSBCAPS_GLOBALFOCUS;
dsbd.dwBufferBytes=m_pSoundFile->GetPCMTotal();
dsbd.guid3DAlgorithm = GUID_NULL;
dsbd.lpwfxFormat=m_pSoundFile->GetWaveFormat();
//创建声音缓冲区
T_SafeRelease(m_pDSoundBuf);
LPDIRECTSOUNDBUFFER pDSBuf=NULL;
V_RETURN(pDirectSound8->CreateSoundBuffer(&dsbd,&pDSBuf,NULL));
V_RETURN(pDSBuf->QueryInterface(IID_IDirectSoundBuffer8,(void **)&m_pDSoundBuf));
T_SafeRelease(pDSBuf);
DSBCAPS dscaps;
ZeroMemory(&dscaps,sizeof(dscaps));
V_RETURN(m_pDSoundBuf->GetCaps(&dscaps)); |
|