|
|
发表于 2010-4-13 05:07:00
|
显示全部楼层
Re: 请问:我用 IDirectSoundBuffer8::Play() 放不出声音?
Dx 9.0的手册里面这样写的:
Return Values
If the method succeeds, the return value is DS_OK.
If the method fails, the return value may be one of the following error values:
Return code
DSERR_BUFFERLOST
DSERR_INVALIDCALL
DSERR_INVALIDPARAM
DSERR_PRIOLEVELNEEDED
大意是如果成功则返回 DS_OK,不成功则返回相应的值,你可以根据返回值来判断怎么回事。
给你个参考:
hr=lpsb1-> lay(0,0,0);
switch(hr)
{
case DSERR_BUFFERLOST:
MessageBox(NULL,"fail1","test",MB_OK);
break;
case DSERR_INVALIDCALL:
MessageBox(NULL,"fail2","test",MB_OK);
break;
case DSERR_INVALIDPARAM:
MessageBox(NULL,"fail3","test",MB_OK);
break;
case DSERR_PRIOLEVELNEEDED:
MessageBox(NULL,"fail4","test",MB_OK);
break;
}
我今天才学得,做的时候没有设置协调级别(SetCoopertiveLevel),出现DSERR_PRIOLEVELNEEDED;设置后就好了。
刚开始有声音,不知道为什么,弄了几次之后就不行了。我也在摸索中。
论坛上有DX的开发手册,不过是英文版的,你可以下来看看,我也是昨天才下载的,就为DirectSound...
|
|