My english is poor,so I beg your pardon.
My codes are about playing voice,and it doesn't return error,
but it has no voice,why?
Look:
Code:#define OUT_BUFFER_SIZE 6000 void main() { HWAVEOUT hWaveOut ; PWAVEHDR pWaveHdr ; WAVEFORMATEX waveformat ; PBYTE pBuffer; waveformat.wFormatTag = WAVE_FORMAT_PCM ; waveformat.nChannels = 2 ; waveformat.nSamplesPerSec = 44100; ; waveformat.nAvgBytesPerSec = 44100*16*2/8 ; waveformat.nBlockAlign = 16*2/8 ; waveformat.wBitsPerSample = 16 ; waveformat.cbSize = 0 ; // open if (waveOutOpen (&hWaveOut, WAVE_MAPPER, &waveformat,0, 0, 0)!= MMSYSERR_NOERROR) { printf("waveOutOpen error \n"); return ; } pWaveHdr =(PWAVEHDR)malloc (sizeof (WAVEHDR)) ; pBuffer = (PBYTE)malloc (OUT_BUFFER_SIZE) ; // prepare buffer pWaveHdr->lpData = (char*)pBuffer ; pWaveHdr->dwBufferLength = OUT_BUFFER_SIZE ; pWaveHdr->dwBytesRecorded = 0 ; pWaveHdr->dwUser = 0 ; pWaveHdr->dwFlags = 0 ; pWaveHdr->dwLoops = 1 ; pWaveHdr->lpNext = NULL ; pWaveHdr->reserved = 0 ; if(waveOutPrepareHeader(hWaveOut, pWaveHdr,sizeof (WAVEHDR))!=MMSYSERR_NOERROR) { printf("waveOutPrepareHeader error \n"); return ; } // play memset(pBuffer,70,OUT_BUFFER_SIZE); if(waveOutWrite (hWaveOut, pWaveHdr, sizeof (WAVEHDR)) !=MMSYSERR_NOERROR) { printf("waveOutWrite error \n"); return ; } // clean if(waveOutReset(hWaveOut) !=MMSYSERR_NOERROR) { printf("waveOutReset error \n"); return ; } if(waveOutUnprepareHeader (hWaveOut, pWaveHdr, sizeof (WAVEHDR)) !=MMSYSERR_NOERROR) { printf("waveOutUnprepareHeader error \n"); return ; } if(waveOutClose(hWaveOut)!=MMSYSERR_NOERROR) { printf("waveOutClose error \n"); return ; } }



LinkBack URL
About LinkBacks



