Note that there are some explanatory texts on larger screens.

plurals
  1. PODirectSound: simple pcm playing
    primarykey
    data
    text
    <p>I'm playing with DirectSound and trying to play simple random wav data with following code:</p> <pre><code>int _tmain(int argc, _TCHAR* argv[]) { LPDIRECTSOUND8 dsound; WAVEFORMATEX format; const int numchunks = 8; LPDIRECTSOUNDBUFFER dsbuf; DSBUFFERDESC buf_format; const int chunksize = 1024; HRESULT res; uint8_t *data1,*data2; uint32_t size1,size2; memset(&amp;format,0,sizeof(WAVEFORMATEX)); format.wFormatTag = WAVE_FORMAT_PCM; format.nChannels = 1; format.wBitsPerSample = 16; format.nSamplesPerSec = 44100; format.nBlockAlign = format.nChannels * format.wBitsPerSample / 8; format.nAvgBytesPerSec = format.nBlockAlign * format.nSamplesPerSec ; format.cbSize = 0; assert(DirectSoundCreate8(NULL,&amp;dsound,NULL) == DS_OK); assert(dsound-&gt;SetCooperativeLevel(GetDesktopWindow(),DSSCL_PRIORITY) == DS_OK); memset(&amp;buf_format,0,sizeof(DSBUFFERDESC)); buf_format.dwSize = sizeof(buf_format); buf_format.dwFlags = DSBCAPS_GETCURRENTPOSITION2; buf_format.dwFlags |= DSBCAPS_STICKYFOCUS; buf_format.dwBufferBytes = numchunks * chunksize; buf_format.dwReserved = 0; buf_format.lpwfxFormat = &amp;format; res = dsound-&gt;CreateSoundBuffer(&amp;buf_format,&amp;dsbuf,NULL); assert(res == DS_OK ); srand(time(NULL)); assert(IDirectSoundBuffer_Lock(dsbuf,0,buf_format.dwBufferBytes,(LPVOID *)&amp;data1,(LPDWORD)&amp;size1, (LPVOID *)&amp;data2,(LPDWORD)&amp;size2,DSBLOCK_ENTIREBUFFER) == DS_OK); cout &lt;&lt; "got buffer with size "&lt;&lt;size1&lt;&lt;endl; for (uint32_t i = 0 ; i &lt; size1; i ++) data1[i] = rand() % 256; IDirectSoundBuffer_Unlock(dsbuf, (LPVOID) data1, (DWORD)size1, (LPVOID) data2, (DWORD)size2); assert(IDirectSoundBuffer_Play(dsbuf,0,0,DSBPLAY_LOOPING) == DS_OK); cin.get(); return 0; } </code></pre> <p>but on output i hear only silence. Also there are no error on outputs and my data1 is really some random stuff. What am i doing wrong?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload