Bonjour,
Voila mon soucis : je veux écouter un ensemble de son mis à la suite par des buffers. Seul soucis c'est que entre chaque son j'ai un petit bruit (comme la fermeture et l'ouverture du canal sonore).
Voila code version ultra simplifié :
//Tout d'abord je créée le lien avec la carte son (j'ouvre un canal)
HWAVEOUT hWaveOut;
WAVEFORMATEX wfex;
WAVEHDR whdr1;
//propriété du signal
wfex.wFormatTag = WAVE_FORMAT_PCM;
wfex.nChannels = 1; /* Mono. 2 = Stereo */
wfex.wBitsPerSample = CHAR_BIT; /* Nombre de bits par echantillon */
wfex.nSamplesPerSec =FE;
wfex.nBlockAlign = (wfex.nChannels * wfex.wBitsPerSample) / CHAR_BIT;
wfex.nAvgBytesPerSec = wfex.nSamplesPerSec*wfex.nBlockAlign;
wfex.cbSize = 0;
waveOutOpen(&hWaveOut, WAVE_MAPPER, &wfex,(DWORD) Done, 0, CALLBACK_EVENT);
//puis apré j'ai une fonction que je fait appel tous les 50 millisecondes qui crée un //signal stocké dans char* buffer :
void vocodeur::sonSimple(int num)
{
this->creerSignal(num); //fonction qui stock le signal dans buffer
whdr1.lpData =buffer;
whdr1.dwBufferLength = L;
whdr1.dwFlags=0;
whdr1.dwLoops = 0;
waveOutPrepareHeader(hWaveOut, &whdr1, sizeof(whdr1));
waveOutWrite(hWaveOut, &whdr1, sizeof(whdr1));
// if (WaitForSingleObject(Done,INFINITE) != WAIT_OBJECT_0)
// {}
waveOutUnprepareHeader(hWaveOut, &whdr1, sizeof(whdr1));
}