
06.07.2012, 00:03
|
 |
.
|
|
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
|
|
Не пудри мозги себе и другим, всё работает:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
I : integer;
wout : hWaveOut;
fmt : tWAVEFORMATEX;
hdr : array[0..2] of WAVEHDR;
begin
prepareSine;
with fmt do
Begin
wFormatTag := WAVE_FORMAT_PCM;
nChannels := 1;
nSamplesPerSec := SPS;
wBitsPerSample := 16;
nBlockAlign := nChannels * wBitsPerSample div 8;
nAvgBytesPerSec := nSamplesPerSec * nBlockAlign;
cbSize := 0;
end;
WaveOutOpen(@wout, Cardinal(-1), @fmt, 0, 0, 0);
if wout <> 0 then
begin
for I := 0 to High(hdr) do
begin
FillChar(hdr[i], sizeof(hdr[i]), #0);
hdr[i].lpData := @second[i];
hdr[i].dwBufferLength := SizeOf(second[i]);
waveOutPrepareHeader(wout, @hdr[i], SizeOf(hdr[i]));
WaveOutWrite(wout, @hdr[i], SizeOf(hdr[i]));
end;
Sleep(3100); // sleep for 3 seconds
waveOutUnprepareHeader(wout, @hdr, SizeOf(WAVEHDR));
WaveOutClose(wout);
end;
end;
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
|