----------------------------------------------------------------------- "Delphi X-Files" 0then exit; // Something is going wrong buffer_length := header.nChannels*(header.wBitsPerSample shr 3)*buffer_size; buffer_handle_0 := GlobalAlloc(GMEM_MOVEABLE and GMEM_SHARE, buffer_length); buffer_handle_1 := GlobalAlloc(GMEM_MOVEABLE and GMEM_SHARE, buffer_length); buffer_0 := GlobalLock(buffer_handle_0); buffer_1 := GlobalLock(buffer_handle_1); new(buffer_header_0); with buffer_header_0^ do begin lpData := buffer_0; dwBufferLength := buffer_length; dwFlags := WHDR_BEGINLOOP; end; result := waveInPrepareHeader(wave_in, buffer_header_0, sizeof(buffer_header_0^)); result := waveInAddBuffer(wave_in, buffer_header_0, sizeof(buffer_header_0^)); if result<>0then exit; // Something is going wrong new(buffer_header_1); with buffer_header_1^ do begin lpData := buffer_1; dwBufferLength := buffer_length; dwFlags := WHDR_ENDLOOP; end; result := waveInPrepareHeader(wave_in, buffer_header_1, sizeof(buffer_header_1^)); result := waveInAddBuffer(wave_in, buffer_header_1, sizeof(buffer_header_1^)); result := waveInStart(wave_in); // Start recording dispose(header) end; procedure TForm1.OnWaveIn; var WaveHeader : pWAVEHDR; result : MMResult; begin WaveHeader := pointer(Msg.lParam); // Process data if DataProcessed then begin Move(WaveHeader^.lpData^, ba, 512); DataProcessed := false; end; result := waveInAddBuffer(wave_in, WaveHeader, SizeOf(WaveHeader^)) end; procedure TForm1.StopWaveIn; var result : MMResult; begin if 0 = waveInGetNumDevs then exit; // No Audio input devices are present result := waveInReset(wave_in); result := waveInUnPrepareHeader(wave_in, buffer_header_0, sizeof(buffer_header_0^)); result := waveInUnPrepareHeader(wave_in, buffer_header_1, sizeof(buffer_header_1^)); result := waveInClose(wave_in); GlobalUnlock(buffer_handle_0); GlobalUnlock(buffer_handle_1); GlobalFree(buffer_handle_0); GlobalFree(buffer_handle_1); dispose(buffer_header_0); dispose(buffer_header_1) end; //... end. --------------------------------------------------------------------------------