Tutaj macie prawie cały kod:
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1 : TForm1;
Channel : DWORD;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
BASS_Init(1, 44100, 0, Application.Handle, nil);
Spectrum:=TSpectrum.Create(Paint.Width, Paint.Height);
Icon.LoadFromFile('bandit.ico');
end;
procedure TForm1.CzasTimer(Sender: TObject);
var FFTFata : TFFTData;
dlugosc_pliku:integer;
aktualny_stan:integer;
begin
dlugosc_pliku:=BASS_StreamGetFilePosition(Channel,BASS_FILEPOS_END);
aktualny_stan:=BASS_StreamGetFilePosition(Channel,BASS_FILEPOS_DECODE);
Postep.Position:=round(aktualny_stan/dlugosc_pliku*100);
Czas_gry.Caption:='pozostalo jeszcze ' + IntToStr(100-round(aktualny_stan/dlugosc_pliku*100)) + '%';
if BASS_ChannelIsActive(Channel) <> BASS_ACTIVE_PLAYING then
Exit;
BASS_ChannelGetData(Channel, @FFTFata, BASS_DATA_FFT1024);
Spectrum.Draw (Paint.Canvas.Handle, FFTFata, 16, -16);
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Bass_Free;
end;
procedure TForm1.GraClick(Sender: TObject);
begin
Channel := BASS_StreamCreateFile(FALSE, PChar(Otworz.FileName), 0, 0, 0);
BASS_ChannelPlay(Channel, False);
BASS_Start;
BASS_SetVolume(0);
if Bass_pause=true then
begin
BASS_SetVolume(ScrollBar1.Position);
BASS_Start;
end;
end;
procedure TForm1.StopClick(Sender: TObject);
begin
Channel := BASS_StreamCreateFile(FALSE, PChar(Otworz.FileName), 0, 0, 0);
BASS_ChannelStop(Channel);
BASS_Stop;
end;
procedure TForm1.ListaDblClick(Sender: TObject);
begin
if BASS_Start=true then
Bass_Stop;
Otworz.FileName:=Lista.Items.strings[Lista.itemindex];
if Otworz.FileName<>'' then
Channel := BASS_StreamCreateFile(FALSE, PChar(Lista.Items.strings[Lista.itemindex]), 0, 0, 0);
BASS_Start;
BASS_ChannelPlay(Channel, False);
Edit.Text:=ExtractFileName(Lista.Items.ValueFromIndex[Lista.ItemIndex]);
Form1.Caption:='FALON <<< '+ ExtractFileName(Lista.Items.ValueFromIndex[Lista.ItemIndex])+' >>>';
end;
procedure TForm1.ListaClick(Sender: TObject);
begin
Edit.Text:=ExtractFileName(Lista.Items.ValueFromIndex[Lista.itemindex]);
Otworz.FileName:=Lista.Items.Strings[Lista.itemindex];
end;
procedure TForm1.PauzaClick(Sender: TObject);
begin
Bass_Pause;
BASS_ChannelPause(Channel);
BASS_StreamGetFilePosition(Channel,BASS_FILEPOS_DECODE);
end;
procedure TForm1.ScrollBar1Change(Sender: TObject);
begin
BASS_SetVolume(ScrollBar1.Position);
end;
procedure TForm1.ScrollBar2Change(Sender: TObject);
begin
BASS_ChannelSetAttributes(Channel,-1,-1,ScrollBar2.Position)
end;