Kod: Tümünü seç
unit mp3;
interface
uses
ShellApi,registry,
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, ComCtrls, Bass, pngextra, jpeg, AdvTrackBar,
Menus, bsSkinCtrls, bsSkinData, bsCalendar, Transparent, pngimage;
type
TFFTData = array [0..512] of Single;
TPlayerMode = (Stop, Play, Paused);
TForm_player = class(TForm)
Label4: TLabel;
ScrollBar1: TScrollBar;
TrackBar2: TTrackBar;
Button5: TButton;
OpenDialog1: TOpenDialog;
Timer1: TTimer;
Image1: TImage;
pb1: TPaintBox;
PNGButton1: TPNGButton;
PNGButton2: TPNGButton;
PNGButton3: TPNGButton;
PNGButton4: TPNGButton;
PNGButton5: TPNGButton;
PNGButton6: TPNGButton;
PNGButton7: TPNGButton;
PNGButton9: TPNGButton;
PNGButton10: TPNGButton;
PNGButton11: TPNGButton;
PNGButton12: TPNGButton;
PNGButton13: TPNGButton;
AdvTrackBar1: TAdvTrackBar;
Label1: TLabel;
Image2: TImage;
Label2: TLabel;
PNGButton14: TPNGButton;
Panel1: TPanel;
Image4: TImage;
PNGButton8: TPNGButton;
ListBox1: TListBox;
Panel2: TPanel;
TrackBar3: TTrackBar;
TrackBar4: TTrackBar;
TrackBar5: TTrackBar;
TrackBar6: TTrackBar;
TrackBar7: TTrackBar;
TrackBar8: TTrackBar;
TrackBar9: TTrackBar;
TrackBar10: TTrackBar;
TrackBar11: TTrackBar;
TrackBar12: TTrackBar;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
advt: TAdvTrackBar;
Label3: TLabel;
Timer2: TTimer;
PNGButton15: TPNGButton;
Image3: TImage;
PNGButton16: TPNGButton;
PNGButton17: TPNGButton;
PNGButton18: TPNGButton;
PopupMenu1: TPopupMenu;
Clear1: TMenuItem;
arkSilme1: TMenuItem;
arkEkleme1: TMenuItem;
ListBox2: TListBox;
bsSkinData1: TbsSkinData;
bsCompressedStoredSkin1: TbsCompressedStoredSkin;
bsSkinPanel1: TbsSkinPanel;
bsSkinTrackBar1: TbsSkinTrackBar;
bsSkinTrackBar2: TbsSkinTrackBar;
bsSkinTrackBar3: TbsSkinTrackBar;
bsSkinTrackBar4: TbsSkinTrackBar;
bsSkinTrackBar5: TbsSkinTrackBar;
bsSkinTrackBar6: TbsSkinTrackBar;
bsSkinTrackBar7: TbsSkinTrackBar;
bsSkinTrackBar8: TbsSkinTrackBar;
Image5: TImage;
Label15: TLabel;
bsSkinTrackBar9: TbsSkinTrackBar;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
PNGButton19: TPNGButton;
PNGButton20: TPNGButton;
Edit2: TEdit;
Edit3: TEdit;
Timer3: TTimer;
PNGButton21: TPNGButton;
Button1: TButton;
Image6: TImage;
Image7: TImage;
Image8: TImage;
Image9: TImage;
Memo1: TMemo;
Edit1: TEdit;
procedure Button4Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Player;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode;
var ScrollPos: Integer);
procedure Timer1Timer(Sender: TObject);
procedure ListBox1DblClick(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure TrackBar3Change(Sender: TObject);
procedure TrackBar4Change(Sender: TObject);
procedure TrackBar5Change(Sender: TObject);
procedure TrackBar6Change(Sender: TObject);
procedure TrackBar7Change(Sender: TObject);
procedure TrackBar8Change(Sender: TObject);
procedure TrackBar9Change(Sender: TObject);
procedure TrackBar10Change(Sender: TObject);
procedure TrackBar11Change(Sender: TObject);
procedure TrackBar12Change(Sender: TObject);
procedure pb1Paint(Sender: TObject);
procedure Draw(HWND : THandle; FFTData : TFFTData; X, Y : Integer);
procedure PNGButton3Click(Sender: TObject);
procedure PNGButton1Click(Sender: TObject);
procedure PNGButton9Click(Sender: TObject);
procedure PNGButton10Click(Sender: TObject);
procedure PNGButton12Click(Sender: TObject);
procedure PNGButton4Click(Sender: TObject);
procedure PNGButton8Click(Sender: TObject);
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Timer2Timer(Sender: TObject);
procedure PNGButton15Click(Sender: TObject);
procedure advtMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Clear1Click(Sender: TObject);
procedure arkSilme1Click(Sender: TObject);
procedure arkEkleme1Click(Sender: TObject);
procedure ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
procedure ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormDestroy(Sender: TObject);
procedure PNGButton2Click(Sender: TObject);
procedure ListBox2DblClick(Sender: TObject);
procedure ListBox2DragDrop(Sender, Source: TObject; X, Y: Integer);
procedure ListBox2DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure PNGButton16Click(Sender: TObject);
procedure bsSkinTrackBar1Change(Sender: TObject);
procedure bsSkinTrackBar2Change(Sender: TObject);
procedure bsSkinTrackBar3Change(Sender: TObject);
procedure bsSkinTrackBar5Change(Sender: TObject);
procedure bsSkinTrackBar4Change(Sender: TObject);
procedure bsSkinTrackBar6Change(Sender: TObject);
procedure bsSkinTrackBar7Change(Sender: TObject);
procedure bsSkinTrackBar8Change(Sender: TObject);
procedure bsSkinTrackBar9Change(Sender: TObject);
procedure PNGButton19Click(Sender: TObject);
procedure PNGButton20Click(Sender: TObject);
procedure PNGButton5Click(Sender: TObject);
procedure PNGButton11Click(Sender: TObject);
procedure PNGButton14Click(Sender: TObject);
procedure Timer3Timer(Sender: TObject);
procedure PNGButton18Click(Sender: TObject);
procedure PNGButton21Click(Sender: TObject);
procedure Image6Click(Sender: TObject);
procedure Image7Click(Sender: TObject);
procedure Image9Click(Sender: TObject);
procedure Image8Click(Sender: TObject);
procedure PNGButton7Click(Sender: TObject);
procedure PNGButton17Click(Sender: TObject);
procedure ListBox2Click(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
private
chan: DWORD;
{ Private declarations }
public
procedure WMDROPFILES(var Msg: TMessage); message WM_DROPFILES;
{ Public declarations }
end;
var
Form_player: TForm_player;
i:integer; //íîìåğ ïğîèãğûâàåìîé ïåñíè â playlist
filename: string;//èìÿ ôàéëà
filename2: string;//èìÿ ôàéëà
Channel : DWORD;//
Mode: TPlayerMode;//PlayMode
//ïåğåìåííûå äëÿ íàñòğîéêè ıêâàëàéçåğà
p: BASS_DX8_PARAMEQ;
pR: BASS_DX8_REVERB;
fx: array[1..11] of integer;
//ïåğåìåííûå âèçóàëèçàöèè
FFTPeacks : array [0..128] of Integer;
FFTFallOff : array [0..128] of Integer;
RepeatOn: Boolean;
StartingPoint : TPoint;
implementation
uses Unit1, Unit5, DosyaTurleri;
{$R *.dfm}
procedure ParamList(const Goster:Boolean);
var S:String; i:Integer;
begin
if Goster then begin
S:='';
for i:=1 to ParamCount do S:=Format('%s'#13#10'%d=%s',[S,i,ParamStr(i)]);
ShowMessage(Format('Parametreler (%d)..:',[ParamCount])+S);
end;
end;
procedure RegisterExtension(const sExt, sDesc, AppPath: string);
begin
with TRegistry.Create do
try
RootKey := HKEY_CLASSES_ROOT;
if OpenKey(sExt, True) then begin
WriteString('', sDesc);
CloseKey;
end;
if OpenKey('\' + sDesc, True) then begin
WriteString('', sDesc);
CloseKey;
end;
if OpenKey('DefaultIcon', True) then begin
WriteString('', AppPath + ',' + IntToStr(0));
CloseKey;
end;
if OpenKey('\' + sDesc + '\Shell\Open\Command', True) then begin
WriteString('', '"' + AppPath + '" "%1"');
CloseKey;
end;
finally
Free;
end;
end;
procedure TForm_Player.WMDROPFILES(var Msg: TMessage);
var
i, amount, size: integer;
Filename: PChar;
begin
inherited;
Amount := DragQueryFile(Msg.WParam, $FFFFFFFF, Filename, 255);
for i := 0 to (Amount - 1) do
begin
size := DragQueryFile(Msg.WParam, i, nil, 0) + 1;
Filename := StrAlloc(size);
DragQueryFile(Msg.WParam, i, Filename, size);
listbox1.Items.Add(StrPas(Filename));
listbox2.Items.Add(extractfilename(StrPas(Filename)));
ListBox2.Itemindex:=i;
Filename2:=ListBox1.Items.Strings[i];
Label3.caption := ListBox2.Items.Strings[listbox2.ItemIndex];
Label3.caption := ExtractFilename(label3.Caption);
StrDispose(Filename);
end;
DragFinish(Msg.WParam);
end;
procedure TForm_Player.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
Form_Player.perform(WM_SYSCOMMAND, $F012, 0);
end;
procedure TForm_Player.Draw(HWND : THandle; FFTData : TFFTData; X, Y : Integer);
var i, YPos : LongInt; YVal : Single;
{ Spectrum Visualyzation by Alessandro Cappellozza
version 0.8 05/2002
http://digilander.iol.it/Kappe/audioobject}
begin
//î÷èñòêà îáëàñòè âèçóàëèçàöèè
pb1.Canvas.Pen.Color := clBlack;
pb1.Canvas.Brush.Color := clBlack;
pb1.Canvas.Rectangle(0, 0, pb1.Width, pb1.Height);
//âèçóàëèçàöèÿ
//pb1.Canvas.Pen.Color := clRed;
for i := 0 to 127 do begin // êîëè÷åñòâî ñòîëáèêîâ
YVal := Abs(FFTData[i]);
YPos := trunc((YVal) * 500);
if YPos > pb1.Height then YPos := pb1.Height;
if YPos >= FFTPeacks[i] then FFTPeacks[i] := YPos
else FFTPeacks[i] := FFTPeacks[i] - 1;
if YPos >= FFTFallOff[i] then FFTFallOff[i] := YPos
else FFTFallOff[i] := FFTFallOff[i] - 3;
//ğèñîâàíèå ïèêà
pb1.Canvas.Pen.Color := clred;
pb1.Canvas.MoveTo(X + i*(3+1) , Y + pb1.Height - FFTPeacks[i]);
pb1.Canvas.LineTo(X + i*(3+1) + 3, Y + pb1.Height - FFTPeacks[i]);
//ğèñîâàíèå ñòîëáèêà
pb1.Canvas.Pen.Color := clsilver;
pb1.Canvas.Brush.Color := clsilver;
pb1.Canvas.Rectangle(X + i*(3+1) , Y + pb1.Height - FFTFallOff[i], X + i*(3+1) + 3, Y + pb1.Height);
end;
end;
procedure TForm_Player.Player;
begin
//ïğîâåğÿåì, åñëè íå ïàóçà
if mode<>paused then begin
//òî ïğîâåğÿåì ñóùåñòâóåò ëè ôàéë çàãğóæàåìûé èç PlayList
//åñëè ôàéë íå ñóùåñòâóåò, òî âûõîäèì
if not FileExists(FileName) then begin ShowMessage('Liste Boş');exit;end;
//îñòàíàâëèâàåì è îñâîáîæäàåì êàíàë âîñïğîèçâåäåíèÿ
BASS_ChannelStop(Channel);BASS_StreamFree(Channel);
//ïûòàåìñÿ çàãğóçèòü ôàéë è ïîëó÷èòü äåñêğèïòîğ êàíàëà
Channel := BASS_StreamCreateFile(FALSE, PChar(FileName), 0, 0, 0 {$IFDEF UNICODE} or BASS_UNICODE {$ENDIF});
//åñëè äåñêğèïòîğ êàíàëà=0 (ôàéë ïî êàêîé òî ïğè÷èíå íå ìîæåò áûòü çàãğóæåí),
//âûäàåì ñîîáùåíèå îá îøèáêå è âûõîäèì
if Channel=0 then begin ShowMessage('Îøèáêà çàãğóçêè Ôàéëà');exit;end;
end;
//íàñòğîéêà ıêâàëàéçåğà
fx[1] := BASS_ChannelSetFX(channel, BASS_FX_DX8_PARAMEQ, 1);//ïåğâûé êàíàë ıêâàëàéçåğà
fx[2] := BASS_ChannelSetFX(channel, BASS_FX_DX8_PARAMEQ, 1);//âòîğîé êàíàë
fx[3] := BASS_ChannelSetFX(channel, BASS_FX_DX8_PARAMEQ, 1);
fx[4] := BASS_ChannelSetFX(channel, BASS_FX_DX8_PARAMEQ, 1);
fx[5] := BASS_ChannelSetFX(channel, BASS_FX_DX8_PARAMEQ, 1);
fx[6] := BASS_ChannelSetFX(channel, BASS_FX_DX8_PARAMEQ, 1);
fx[7] := BASS_ChannelSetFX(channel, BASS_FX_DX8_PARAMEQ, 1);
fx[8] := BASS_ChannelSetFX(channel, BASS_FX_DX8_PARAMEQ, 1);
fx[9] := BASS_ChannelSetFX(channel, BASS_FX_DX8_PARAMEQ, 1);
fx[10] := BASS_ChannelSetFX(channel, BASS_FX_DX8_PARAMEQ, 1);
fx[11] := BASS_ChannelSetFX(chan, BASS_FX_DX8_REVERB, 1);
//íàñòğîéêà ïåğâîãî êàíàëà ıêâàëàéçåğà
p.fGain := 0;
p.fBandwidth := 18;
p.fCenter := 80;
BASS_FXSetParameters(fx[1], @p);
p.fCenter := 170;
BASS_FXSetParameters(fx[2], @p);
p.fCenter := 360;
BASS_FXSetParameters(fx[3], @p);
p.fCenter := 250;
BASS_FXSetParameters(fx[4], @p);
p.fCenter := 1000;
BASS_FXSetParameters(fx[5], @p);
p.fCenter := 16000;
BASS_FXSetParameters(fx[6], @p);
p.fCenter := 6000;
BASS_FXSetParameters(fx[7], @p);
p.fCenter := 1200;
BASS_FXSetParameters(fx[8], @p);
p.fCenter := 14000;
BASS_FXSetParameters(fx[9], @p);
p.fCenter := 16000;
BASS_FXSetParameters(fx[10], @p);
BASS_FXGetParameters(fx[11], @pR);
pR.fReverbMix := -96;
pR.fReverbTime := 1200;
pR.fHighFreqRTRatio := 0.1;
BASS_FXSetParameters(fx[11], @pR);
if not BASS_ChannelPlay(Channel, False) then
begin ShowMessage('Îøèáêà âîñïğîèçâåäåíèÿ ôàéëà');exit;end;
advt.Min:=0;
advt.Max:=bass_ChannelGEtLength(Channel, 0)-1;
Form_Player.Caption:=ExtractFileName(FileName);
mode:=play;
end;
procedure TForm_player.ScrollBar1Scroll(Sender: TObject;
ScrollCode: TScrollCode; var ScrollPos: Integer);
begin
bass_ChannelSetPosition(Channel, advt.position, 0);
end;
procedure TForm_player.Timer1Timer(Sender: TObject);
var FFTFata : TFFTData;
TrackLen, TrackPos: Double;
ValPos: Double;
ValLen: Double;
begin
if mode<>play then Exit;
if BASS_ChannelGetPosition(channel, 0)=BASS_ChannelGetLength(channel, 0) then
begin
if i<ListBox1.Items.Count-1 then
begin
inc(i);
Filename:=ListBox1.Items.Strings[i];
ListBox2.ItemIndex:=i;
mode:=stop;
player;
end
else exit;
end;
BASS_ChannelGetData(Channel, @FFTFata, BASS_DATA_FFT1024);
Draw (pb1.Canvas.Handle, FFTFata, 0,-5);
advt.Position:=bass_channelGetPosition(channel,0);
TrackPos:=BASS_ChannelBytes2Seconds(Channel,BASS_ChannelGetPosition(Channel,0));
TrackLen:=BASS_ChannelBytes2Seconds(Channel,BASS_ChannelGetLength(Channel,0));
ValPos:=TrackPos / (24 * 3600);
ValLen:=TrackLen / (24 * 3600);
Label1.Caption:=FormatDateTime('hh:mm:ss',ValPos);
Label2.Caption:=FormatDateTime('hh:mm:ss',ValLen);
BASS_ChannelSetAttribute(Channel,BASS_ATTRIB_VOL,advtrackBar1.Position/10);
BASS_ChannelSetAttribute(Channel,BASS_ATTRIB_PAN,form1.bsSkinTrackBar2.value/5);
end;
procedure TForm_player.TrackBar10Change(Sender: TObject);
begin
BASS_FXGetParameters(fx[8], @p);
p.fgain := 15-TrackBar10.position;
BASS_FXSetParameters(fx[8], @p);
end;
procedure TForm_player.TrackBar11Change(Sender: TObject);
begin
BASS_FXGetParameters(fx[9], @p);
p.fgain := 15-TrackBar11.position;
BASS_FXSetParameters(fx[9], @p);
end;
procedure TForm_player.TrackBar12Change(Sender: TObject);
begin
BASS_FXGetParameters(fx[10], @p);
p.fgain := 15-TrackBar12.position;
BASS_FXSetParameters(fx[10], @p);
end;
procedure TForm_player.TrackBar3Change(Sender: TObject);
begin
BASS_FXGetParameters(fx[1], @p);
p.fgain := 15-TrackBar3.position;
BASS_FXSetParameters(fx[1], @p);
end;
procedure TForm_player.TrackBar4Change(Sender: TObject);
begin
BASS_FXGetParameters(fx[2], @p);
p.fgain := 15-TrackBar4.position;
BASS_FXSetParameters(fx[2], @p);
end;
procedure TForm_player.TrackBar5Change(Sender: TObject);
begin
BASS_FXGetParameters(fx[3], @p);
p.fgain := 15-TrackBar5.position;
BASS_FXSetParameters(fx[3], @p);
end;
procedure TForm_player.TrackBar6Change(Sender: TObject);
begin
BASS_FXGetParameters(fx[4], @p);
p.fgain := 15-TrackBar6.position;
BASS_FXSetParameters(fx[4], @p);;
end;
procedure TForm_player.TrackBar7Change(Sender: TObject);
begin
BASS_FXGetParameters(fx[5], @p);
p.fgain := 15-TrackBar7.position;
BASS_FXSetParameters(fx[5], @p);
end;
procedure TForm_player.TrackBar8Change(Sender: TObject);
begin
BASS_FXGetParameters(fx[6], @p);
p.fgain := 15-TrackBar8.position;
BASS_FXSetParameters(fx[6], @p);
end;
procedure TForm_player.TrackBar9Change(Sender: TObject);
begin
BASS_FXGetParameters(fx[7], @p);
p.fgain := 15-TrackBar9.position;
BASS_FXSetParameters(fx[7], @p);
end;
procedure TForm_player.Button1Click(Sender: TObject);
var DosyaTuru:TDosyaTuru;
begin
DosyaTuru.Uzanti:=edit1.Text;
DosyaTuru.UzantiAciklamasi:=Format('%s Arşivi',[DosyaTuru.Uzanti]);
DosyaTuru.SimgeDosyasi:=Format('%s,0',[Application.ExeName]);
DosyaTuru.ProgramAdi:=Application.ExeName;
DosyaTuru.SagTusMenusu:='MenudenAkmanAc';
DosyaTuru.SagTusMenuParam:='/msg';
DosyaTuru.SagTusMenuAciklamasi:='Akman Dosyası Açıver Gari';
if DosyaTuruKaydet(DosyaTuru,True) then ShowMessage('Dosya tipi kayıt edildi')
else MessageBox(Handle,'Tür kayıt işlemi yapılamadı','Uyarı',MB_ICONWARNING);
end;
procedure TForm_player.Button2Click(Sender: TObject);
begin
if mode=play then
begin
BASS_ChannelPause(Channel);
mode:=paused;
end;
end;
procedure TForm_player.Button3Click(Sender: TObject);
begin
if mode=play then
begin
BASS_ChannelStop(Channel);
mode:=Stop;
end;
end;
procedure TForm_player.Button4Click(Sender: TObject);
var j: integer;
begin
OpenDialog1.Title := 'Open Files';
OpenDialog1.Filter := 'mp3|*.mp3';
if listbox1.Count<>0 then i:=ListBox1.ItemIndex else i:=0;
//Äèàëîã îòêğûòèÿ ôàéëà
if not OpenDialog1.Execute then exit;
begin
for j:=0 to OpenDialog1.Files.Count-1 do
begin
//çàïîëíÿåì PlayList
ListBox1.Items.Add(OpenDialog1.Files.Strings[j]);
end;
end;
//çàïîìèíàåì èìÿ ôàéëà òåêóùåé ïåñíè â ïëåéëèñòå
Filename:=ListBox1.Items.Strings[i];
//Âûäåëÿåì ıòó ïåñíş â PlayList
ListBox1.ItemIndex:=i;
end;
procedure TForm_player.Button5Click(Sender: TObject);
begin
//î÷èñòêà ïëåéëèñòà
listbox1.Clear;
end;
procedure TForm_player.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//Îñâîáîæäàåì îáúåêòû ïåğåä çàêğûòèåì
Bass_Stop(); //îñòàíàâëèâàåì ïğîèãğûâàíèå
BASS_StreamFree(channel); // îñâîáîæäàåì çâóêîâîé êàíàë
Bass_Free;//Îñâîáîæäàåì ğåñóğñû èñïîëüçóåìûå Bass
end;
procedure TForm_player.FormCreate(Sender: TObject);
var DosyaAdi:String;
begin
pngbutton9.Visible:=true;
pngbutton10.Visible:=false;
panel1.Visible:=false;
pngbutton15.Visible:=false;
pngbutton21.Visible:=false;
bsskinpanel1.Visible:=false;
pngbutton20.Visible:=false;
if (ParamCount>0) then begin
DosyaAdi:=ParamStr(1);
if FileExists(DosyaAdi) then listbox1.Items.Add(Dosyaadi);
listbox2.Items.Add(extractfilename(dosyaadi));
ListBox2.Itemindex:=i;
if (ParamCount>1) and SameText(ParamStr(2),'/msg') then ShowMessage('Menüden açılıyorum');
DragAcceptFiles(Handle, True);
ListBox1.DragMode := dmAutomatic;
//óñòàíîâêà ãğîìêîñòè
advtrackbar1.Min:=0;
advtrackbar1.Max:=10;
advtrackbar1.Position:=5;
//óñòàíîâêà áàëàíñà
// ïğîâåğêà êîğğåêòíîñòè çàãğóæåííîé BASS.DLL
if (HIWORD(BASS_GetVersion) <> BASSVERSION) then
begin
MessageBox(0,'Íå êîğğåêòíàÿ âåğñèÿ BASS.DLL',nil,MB_ICONERROR);
Halt;
end;
end;
// Èíèöèàëèçàöèÿ àóäèî - ïî óìîë÷àíèş, 44100hz, stereo, 16 bits
if not BASS_Init(-1, 44100, 0, Handle, nil) then
begin
MessageBox(0,'Îøèáêà èíèöèàëèçàöèÿ àóäèî',nil,MB_ICONERROR);
Halt;
end;
edit2.Text:=datetostr(date);
edit3.Text:='30.09.2012';
if strtodate(edit2.Text)>strtodate(edit3.Text)then begin
showmessage('Deneme Sürümü Bitti');
halt;
end
else if strtodate(edit2.Text)=strtodate(edit3.Text)then begin
showmessage('bugün son gün');
end
else if strtodate(edit2.Text)<strtodate(edit3.Text)then begin
Form_player.Show;
end;
end;
procedure TForm_player.ListBox1DblClick(Sender: TObject);
begin
i:=ListBox1.Itemindex;
Filename:=ListBox1.Items.Strings[i];
mode:=stop;
Label3.caption := ListBox1.Items.Strings[listbox1.ItemIndex];
Label3.caption := ExtractFilename(label3.Caption);
player;
end;
procedure TForm_player.pb1Paint(Sender: TObject);
begin
//ôîí îêíà âèçóàëèçàöèè
pb1.Canvas.Pen.Color:=clBlack; //öâåò ïåğà
pb1.Canvas.Brush.Color:=clBlack;//öâåò êèñòè
pb1.Canvas.Rectangle(0,0,pb1.Width,pb1.Height);//ğèñóåì ïğÿìîóãîëüíèê ôîí
end;
procedure TForm_player.PNGButton3Click(Sender: TObject);
var
j: integer;
begin
OpenDialog1.Title := 'Open Files';
OpenDialog1.Filter := 'All|*.mp3;*.ogg;*.mpg;*.wav';
if listbox1.Count<>0 then i:=ListBox1.ItemIndex else i:=0;
//Äèàëîã îòêğûòèÿ ôàéëà
if not OpenDialog1.Execute then exit;
begin
for j:=0 to OpenDialog1.Files.Count-1 do
begin
//çàïîëíÿåì PlayList
ListBox1.Items.Add(extractfilename(OpenDialog1.Files.Strings[j]));
ListBox2.Items.Add(extractfilename(OpenDialog1.Files.Strings[j]));
end;
end;
//çàïîìèíàåì èìÿ ôàéëà òåêóùåé ïåñíè â ïëåéëèñòå
Filename:=ListBox1.Items.Strings[i];
ListBox2.ItemIndex:=i;
label3.Caption:=opendialog1.FileName;
label3.caption:=extractfilename(opendialog1.filename);
pngbutton9.Visible:=false;
pngbutton10.Visible:=true;
if mode=play then exit ;
player;
end;
procedure TForm_player.PNGButton1Click(Sender: TObject);
begin
close;
end;
procedure TForm_player.PNGButton9Click(Sender: TObject);
begin
pngbutton9.Visible:=false;
pngbutton10.Visible:=true;
i:=ListBox2.Itemindex;
Filename:=ListBox1.Items.Strings[i];
Label3.caption := ListBox2.Items.Strings[listbox2.ItemIndex];
Label3.caption := ExtractFilename(label3.Caption);
player;
end;
procedure TForm_player.PNGButton10Click(Sender: TObject);
begin
pngbutton9.Visible:=true;
pngbutton10.Visible:=false;
if mode=play then
begin
BASS_ChannelPause(Channel);//îñòàíàâëèâàåì âîñïğîèçâåäåíèå - ïàóçà
mode:=paused;//óñòàíàâëèâàåì playmode -> ïàóçà
end;
end;
procedure TForm_player.PNGButton12Click(Sender: TObject);
begin
pngbutton9.Visible:=true;
pngbutton10.Visible:=false;
if mode=play then
begin
BASS_ChannelStop(Channel);//îñòàíàâëèâàåì âîñïğîèçâåäåíèå - ñòîï
mode:=Stop;//óñòàíàâëèâàåì playmode -> ñòîï
end;
end;
procedure TForm_player.PNGButton4Click(Sender: TObject);
begin
bsSkinPanel1.Visible:=false;
panel1.Show;
pngbutton4.Visible:=false;
pngbutton15.Visible:=true;
end;
procedure TForm_player.PNGButton8Click(Sender: TObject);
begin
pngbutton15.Visible:=false;
pngbutton4.Visible:=true;
panel1.Visible:=false;
end;
procedure TForm_player.Timer2Timer(Sender: TObject);
begin
Label3.caption:=copy(Label3.caption,2, length(Label3.caption)-1)+Label3.caption[1];
end;
procedure TForm_player.PNGButton15Click(Sender: TObject);
begin
panel1.visible:=false;
pngbutton15.Visible:=false;
pngbutton4.Visible:=true;
end;
procedure TForm_player.advtMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
pos:integer;
begin
pos:=round((100 / advt.Width)*x);//***ïîçèöèÿ êëèêà
advt.position:=(BASS_ChannelGetLength(channel, 0) div 100) * pos ;
if mode=play then exit ;
player;
end;
procedure TForm_player.Clear1Click(Sender: TObject);
begin
Listbox1.Clear;
Listbox2.Clear;
end;
procedure TForm_player.arkSilme1Click(Sender: TObject);
begin
Listbox1.DeleteSelected;
Listbox2.DeleteSelected;
end;
procedure TForm_player.arkEkleme1Click(Sender: TObject);
var
j: integer;
begin
OpenDialog1.Title := 'Open Files';
OpenDialog1.Filter := 'All|*.mp3;*.ogg;*.mpg;*.wav';
if listbox1.Count<>0 then i:=ListBox1.ItemIndex else i:=0;
//Äèàëîã îòêğûòèÿ ôàéëà
if not OpenDialog1.Execute then exit;
begin
for j:=0 to OpenDialog1.Files.Count-1 do
begin
//çàïîëíÿåì PlayList
ListBox1.Items.Add(extractfilename(OpenDialog1.Files.Strings[j]));
ListBox2.Items.Add(extractfilename(OpenDialog1.Files.Strings[j]));
end;
end;
//çàïîìèíàåì èìÿ ôàéëà òåêóùåé ïåñíè â ïëåéëèñòå
Filename:=ListBox1.Items.Strings[i];
ListBox2.ItemIndex:=i;
label3.Caption:=opendialog1.FileName;
label3.caption:=extractfilename(opendialog1.filename);
pngbutton9.Visible:=false;
pngbutton10.Visible:=true;
if mode=play then exit ;
player;
end;
procedure TForm_player.ListBox1DragDrop(Sender, Source: TObject; X,
Y: Integer);
var
DropPosition, StartPosition: Integer;
DropPoint: TPoint;
begin
DropPoint.X := X;
DropPoint.Y := Y;
with Source as TListBox do
begin
StartPosition := ItemAtPos(StartingPoint,True) ;
DropPosition := ItemAtPos(DropPoint,True) ;
Items.Move(StartPosition, DropPosition) ;
end;
end;
procedure TForm_player.ListBox1DragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
begin
Accept := Source = ListBox1;
end;
procedure TForm_player.ListBox1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
StartingPoint.X := X;
StartingPoint.Y := Y;
end;
procedure TForm_player.FormDestroy(Sender: TObject);
begin
DragAcceptFiles(Handle, False);
end;
procedure TForm_player.PNGButton2Click(Sender: TObject);
begin
application.Minimize;
end;
procedure TForm_player.ListBox2DblClick(Sender: TObject);
begin
i:=ListBox2.Itemindex;
Filename:=ListBox1.Items.Strings[i];
mode:=stop;
Label3.caption := ListBox2.Items.Strings[listbox2.ItemIndex];
Label3.caption := ExtractFilename(label3.Caption);
player;
end;
procedure TForm_player.ListBox2DragDrop(Sender, Source: TObject; X,
Y: Integer);
var
DropPosition, StartPosition: Integer;
DropPoint: TPoint;
begin
DropPoint.X := X;
DropPoint.Y := Y;
with Source as TListBox do
begin
StartPosition := ItemAtPos(StartingPoint,True) ;
DropPosition := ItemAtPos(DropPoint,True) ;
Items.Move(StartPosition, DropPosition) ;
end;
end;
procedure TForm_player.ListBox2DragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
begin
Accept := Source = ListBox2;
end;
procedure TForm_player.PNGButton16Click(Sender: TObject);
begin
form5.show;
pngbutton20.Visible:=true;
pngbutton16.Visible:=false;
end;
procedure TForm_player.bsSkinTrackBar1Change(Sender: TObject);
begin
BASS_FXGetParameters(fx[1], @p);
p.fgain := 15-bsSkinTrackBar1.value;
BASS_FXSetParameters(fx[1], @p);
end;
procedure TForm_player.bsSkinTrackBar2Change(Sender: TObject);
begin
BASS_FXGetParameters(fx[2], @p);
p.fgain := 15-bsSkinTrackBar2.value;
BASS_FXSetParameters(fx[2], @p);
end;
procedure TForm_player.bsSkinTrackBar3Change(Sender: TObject);
begin
BASS_FXGetParameters(fx[3], @p);
p.fgain := 15-bsSkinTrackBar3.value;
BASS_FXSetParameters(fx[3], @p);
end;
procedure TForm_player.bsSkinTrackBar5Change(Sender: TObject);
begin
BASS_FXGetParameters(fx[5], @p);
p.fgain := 15-bsSkinTrackBar5.value;
BASS_FXSetParameters(fx[5], @p);
end;
procedure TForm_player.bsSkinTrackBar4Change(Sender: TObject);
begin
BASS_FXGetParameters(fx[4], @p);
p.fgain := 15-bsSkinTrackBar4.value;
BASS_FXSetParameters(fx[4], @p);
end;
procedure TForm_player.bsSkinTrackBar6Change(Sender: TObject);
begin
BASS_FXGetParameters(fx[6], @p);
p.fgain := 15-bsSkinTrackBar6.value;
BASS_FXSetParameters(fx[6], @p);
end;
procedure TForm_player.bsSkinTrackBar7Change(Sender: TObject);
begin
BASS_FXGetParameters(fx[7], @p);
p.fgain := 15-bsSkinTrackBar7.value;
BASS_FXSetParameters(fx[7], @p);
end;
procedure TForm_player.bsSkinTrackBar8Change(Sender: TObject);
begin
BASS_FXGetParameters(fx[8], @p);
p.fgain := 15-bsSkinTrackBar8.value;
BASS_FXSetParameters(fx[8], @p);
end;
procedure TForm_player.bsSkinTrackBar9Change(Sender: TObject);
begin
BASS_FXGetParameters(fx[9], @p);
p.fgain := 15-bsSkinTrackBar9.value;
BASS_FXSetParameters(fx[9], @p);
end;
procedure TForm_player.PNGButton19Click(Sender: TObject);
begin
bsSkinTrackBar1.Value:=50;
bsSkinTrackBar2.Value:=50;
bsSkinTrackBar3.Value:=50;
bsSkinTrackBar4.Value:=50;
bsSkinTrackBar5.Value:=50;
bsSkinTrackBar6.Value:=50;
bsSkinTrackBar7.Value:=50;
bsSkinTrackBar8.Value:=50;
bsSkinTrackBar9.Value:=50;
end;
procedure TForm_player.PNGButton20Click(Sender: TObject);
begin
form5.hide;
pngbutton16.Visible:=true;
pngbutton20.Visible:=false;
end;
procedure TForm_player.PNGButton5Click(Sender: TObject);
begin
form1.show;
end;
procedure TForm_player.PNGButton11Click(Sender: TObject);
begin
Bass_StreamFree(channel);
channel := Bass_StreamCreateFile(FALSE, pChar(listbox2.Items.Strings[listbox2.ItemIndex]), 0, 0, 0);
if listbox2.ItemIndex=Listbox2.Count-1 then ListBox2.ItemIndex:=-1;
ListBox2.ItemIndex:=ListBox2.ItemIndex+1;
i:=ListBox2.Itemindex;
Filename:=ListBox1.Items.Strings[i];
mode:=stop;
Label3.caption := ListBox2.Items.Strings[listbox2.ItemIndex];
Label3.caption := ExtractFilename(label3.Caption);
player;
end;
procedure TForm_player.PNGButton14Click(Sender: TObject);
begin
Bass_StreamFree(channel);
channel := Bass_StreamCreateFile(FALSE, pChar(listbox2.Items.Strings[listbox2.ItemIndex]), 0, 0, 0);
if listbox2.ItemIndex=Listbox2.Count+1 then ListBox2.ItemIndex:=+1;
ListBox2.ItemIndex:=ListBox2.ItemIndex-1;
i:=ListBox2.Itemindex;
Filename:=ListBox1.Items.Strings[i];
mode:=stop;
Label3.caption := ListBox2.Items.Strings[listbox2.ItemIndex];
Label3.caption := ExtractFilename(label3.Caption);
player;
end;
procedure TForm_player.Timer3Timer(Sender: TObject);
var Key: Word;
begin
if ListBox2.ItemIndex=-1 then //to avoid error if nothing selected "List out bound (-0)"
begin
ListBox2.ItemIndex:=i;
Listbox2.ItemIndex:=ListBox2.ItemIndex;
player;
end else
begin
if mode=play then
begin
bass_channelplay(channel,false);//îñòàíàâëèâàåì âîñïğîèçâåäåíèå - ïàóçà
end;
end;
if (BASS_ChannelIsActive(channel) = 0) and (bass_channelpause(channel) = true) then
ListBox2.ItemIndex:=ListBox2.ItemIndex+1;
end;
procedure TForm_player.PNGButton18Click(Sender: TObject);
begin
pngbutton18.Visible:=false;
pngbutton21.Visible:=true;
timer3.Enabled:=true;
end;
procedure TForm_player.PNGButton21Click(Sender: TObject);
begin
pngbutton21.Visible:=false;
pngbutton18.Visible:=true;
timer3.Enabled:=false;
end;
procedure TForm_player.Image6Click(Sender: TObject);
var
j: integer;
begin
OpenDialog1.Title := 'Open Files';
OpenDialog1.Filter := 'All|*.mp3;*.ogg;*.mpg;*.wav';
if listbox1.Count<>0 then i:=ListBox1.ItemIndex else i:=0;
//Äèàëîã îòêğûòèÿ ôàéëà
if not OpenDialog1.Execute then exit;
begin
for j:=0 to OpenDialog1.Files.Count-1 do
begin
//çàïîëíÿåì PlayList
ListBox1.Items.Add(extractfilename(OpenDialog1.Files.Strings[j]));
ListBox2.Items.Add(extractfilename(OpenDialog1.Files.Strings[j]));
end;
end;
//çàïîìèíàåì èìÿ ôàéëà òåêóùåé ïåñíè â ïëåéëèñòå
Filename:=ListBox1.Items.Strings[i];
ListBox2.ItemIndex:=i;
label3.Caption:=opendialog1.FileName;
label3.caption:=extractfilename(opendialog1.filename);
pngbutton9.Visible:=false;
pngbutton10.Visible:=true;
if mode=play then exit ;
player;
end;
procedure TForm_player.Image7Click(Sender: TObject);
begin
Listbox1.DeleteSelected;
Listbox2.DeleteSelected;
end;
procedure TForm_player.Image9Click(Sender: TObject);
begin
Bass_StreamFree(channel);
channel := Bass_StreamCreateFile(FALSE, pChar(listbox2.Items.Strings[listbox2.ItemIndex]), 0, 0, 0);
if listbox2.ItemIndex=Listbox2.Count-1 then ListBox2.ItemIndex:=-1;
ListBox2.ItemIndex:=ListBox2.ItemIndex+1;
i:=ListBox2.Itemindex;
Filename:=ListBox1.Items.Strings[i];
mode:=stop;
Label3.caption := ListBox2.Items.Strings[listbox2.ItemIndex];
Label3.caption := ExtractFilename(label3.Caption);
player;
end;
procedure TForm_player.Image8Click(Sender: TObject);
begin
Bass_StreamFree(channel);
channel := Bass_StreamCreateFile(FALSE, pChar(listbox2.Items.Strings[listbox2.ItemIndex]), 0, 0, 0);
if listbox2.ItemIndex=Listbox2.Count+1 then ListBox2.ItemIndex:=+1;
ListBox2.ItemIndex:=ListBox2.ItemIndex-1;
i:=ListBox2.Itemindex;
Filename:=ListBox1.Items.Strings[i];
mode:=stop;
Label3.caption := ListBox2.Items.Strings[listbox2.ItemIndex];
Label3.caption := ExtractFilename(label3.Caption);
player;
end;
procedure TForm_player.PNGButton7Click(Sender: TObject);
var
j: integer;
begin
OpenDialog1.Title := 'Open Files';
OpenDialog1.Filter := 'All|*.mp3;*.ogg;*.mpg;*.wav';
if listbox1.Count<>0 then i:=ListBox1.ItemIndex else i:=0;
//Äèàëîã îòêğûòèÿ ôàéëà
if not OpenDialog1.Execute then exit;
begin
for j:=0 to OpenDialog1.Files.Count-1 do
begin
//çàïîëíÿåì PlayList
ListBox1.Items.Add(extractfilename(OpenDialog1.Files.Strings[j]));
ListBox2.Items.Add(extractfilename(OpenDialog1.Files.Strings[j]));
end;
end;
//çàïîìèíàåì èìÿ ôàéëà òåêóùåé ïåñíè â ïëåéëèñòå
Filename:=ListBox1.Items.Strings[i];
ListBox2.ItemIndex:=i;
label3.Caption:=opendialog1.FileName;
label3.caption:=extractfilename(opendialog1.filename);
pngbutton9.Visible:=false;
pngbutton10.Visible:=true;
if mode=play then exit ;
player;
end;
procedure TForm_player.PNGButton17Click(Sender: TObject);
begin
if DosyaTuruSil(edit1.Text) then ShowMessage('Dosya tipi silindi')
else MessageBox(Handle,'Tür silinemedi','Uyarı',MB_ICONWARNING);
end;
procedure TForm_player.ListBox2Click(Sender: TObject);
begin
player;
end;
procedure TForm_player.ListBox1Click(Sender: TObject);
begin
player;
end;
end.
yardımlarınızı bekliyorum arkadaşlar...