IDirectSound8::CreateSoundBuffer要记得释放

    技术2022-05-19  21

    如果持续使用IDirectSound8::CreateSoundBuffer创建缓冲区,播放声音,但是不释放缓冲区。这样会导致所有函数都执行成功,但是某些声音播放不出来!最好的办法就是等声音播放结束立刻释放缓冲区。

    像以前那样创建缓冲区播放声音后,就永远不释放内存的做法是错的。

     

    网上同样的问题如下:http://bbs.gameres.com/showthread.asp?threadid=129171   看13楼http://www.codeguru.com/forum/showthread.php?t=251764

     

    此外,注意下面代码将导致增加对象引用,只RELEASE一次是无法释放对象的

    LPDIRECTSOUNDBUFFER8 pDSBuffer8 = NULL; //buffer if( FAILED( hr = pDSB->QueryInterface( IID_IDirectSoundBuffer8, (LPVOID*) pDSBuffer8) ) ) return DXUT_ERR( L"BUFFER8 ERROR event", hr );


    最新回复(0)