uses MMSystem;
var
format:TWaveFormatEx;
hzv:HWaveOut;
hider:WaveHdr;
buf:PChar;
fl:TMemoryStream;
procedure TForm1.Button1Click(Sender: TObject);//Кнопка Пуск
begin
fl:=TMemoryStream.Create;
fl.LoadFromFile('D:\путь к звуковому файлу\файл.wav');
buf:=StrAlloc(fl.Size);
fl.Read(buf^, fl.Size);
format.wFormatTag:=WAVE_FORMAT_PCM;
format.nChannels:=2;
format.nSamplesPerSec:=44100;//нормальная скорость (для увеличения коэффициент k*44100)
format.nAvgBytesPerSec:=fl.Size;
format.nBlockAlign:=4;
format.wBitsPerSample:=16;
format.cbSize:=0;
waveOutOpen(@hzv, WAVE_MAPPER, @format, 0, 0, CALLBACK_NULL);
hider.lpData:=@buf^;
hider.dwBufferLength:=fl.Size;
fl.Free;
waveOutPrepareHeader(hzv, @hider, SizeOf(hider));
waveOutWrite(hzv, @hider, SizeOf(hider));
end;
procedure TForm1.Button2Click(Sender: TObject);//Кнопка Стоп
begin
waveOutPause(hzv);
waveOutUnPrepareHeader(hzv, @hider, SizeOf(hider));
waveOutClose(hzv);
StrDispose(buf);
end;