Merhaba arkadaşlar bu makalemizde delphi de basit bir media player uygulaması yapacağız.
Formumuza Palette kısmından 1 adet Media Player, ProgressBar, Timer, OpenFileDialog, Button ve 4 adet Label ekleyelim.
Bu örneğimizde OpenDialog ile bilgisayardan çalınacak müzik dosyasının bulunduğu klasörü seçeceğiz. Timer ile müzik parçası çalınırken geçen süre ve kalan süreyi lablellerde gösterimini sağlayacağız. ProgressBar nesnesinde çalınan parçanın toplam süresinde ilerleme yüzdesini göstereceğiz.
Şekil 1
Şekil 2
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, Vcl.MPlayer,
Vcl.ComCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Timer1: TTimer;
MediaPlayer1: TMediaPlayer;
Label1: TLabel;
Label2: TLabel;
ProgressBar1: TProgressBar;
Label3: TLabel;
OpenDialog1: TOpenDialog;
Label4: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
i:integer;
implementation
{$R *.dfm}
Function Two(I : Integer)
: String;
var
T : String;
begin
Str(I,T);
If I < 10 Then Two := '0' + T Else Two := T;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Min,Sec : LongInt;
begin
if OpenDialog1.Execute then
begin
ProgressBar1.Position:=0;
//MediaPlayer1.FileName := 'D:\msc\Frank Sinatra-Cant Take My Eyes off You.mp3';
MediaPlayer1.FileName:=OpenDialog1.FileName;
MediaPlayer1.Open;
MediaPlayer1.Play;
MediaPlayer1.TimeFormat := tfMilliseconds;
Timer1.Enabled := True;
Sec := MediaPlayer1.TrackLength[1] Div 1000;
Min := Sec Div 60;
Sec := Sec Mod 60;
Label1.Caption := MediaPlayer1.FileName;
Label2.Caption := 'Total Time : ' + Two(Min) + ':' + Two(Sec);
ProgressBar1.Max:=Min*60 + Sec;
i:=Min*60 + Sec;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Timer1.Enabled:=False;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
Min,Sec : LongInt;
Min2,Sec2 : string;
begin
Sec := MediaPlayer1.Position Div 1000;
Min := Sec Div 60;
Sec := Sec Mod 60;
Label3.Caption := 'Current Time : ' + Two(Min) + ':' + Two(Sec);
dec(i);
Min2 := IntToStr(i div 60);
Sec2 := IntToStr(i mod 60);
if Length(Min2) = 1 then Min2 := '0' + Min2;
if Length(Sec2) = 1 then Sec2 := '0' + Sec2;
Label4.Caption :='Remaining Time : ' + Min2 + ':' + Sec2;
ProgressBar1.Position:=ProgressBar1.Position + 1;
if MediaPlayer1.Position = MediaPlayer1.TrackLength[1] then begin
Timer1.Enabled := False;
Label1.Caption := '';
Label2.Caption := '';
end;
end;
end.
Bir
makalenin daha sonuna geldik. Bir sonraki makalede görüşmek üzere. Bahadır
ŞAHİN
0 comments:
Yorum Gönder