以下代码,在XP上,CreateSoundBuffer失败,返回E_INVALIDARG,即参数设置错误。
在DirectX的SDK中查看WAVE_FORMAT_PCM可以得到关于wBitsPerSample的说明如下: If wFormatTag is WAVE_FORMAT_PCM, then wBitsPerSample should be equal to 8 or 16.If wFormatTag is WAVE_FORMAT_EXTENSIBLE, this value can be any integer multiple of 8. 也就是说,在格式为WAVE_FORMAT_PCM的时候,设置wBitsPerSample为24是不可以的,所以会创建失败。在wBitsPerSample = 24时,需要使用WAVE_FORMAT_EXTENSIBLE格式。参考如下文章:http://www.eggheadcafe.com/forumarchives/win32programmerdirectxaudio/Nov2005/post24249606.asp
Powered by: C++博客 Copyright © 阿呆