Yazı Font Küçült Yazı Font Büyült

Delphi de MediaPlayer Uygulaması

 

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. 

 

 

 

Resim1

Şekil 1

 

 

Resim2

Ş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[1Div 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) = then Min2 := '0' + Min2;

if Length(Sec2) = then Sec2 := '0' + Sec2;

Label4.Caption :='Remaining Time : ' + Min2 + ':' + Sec2;

ProgressBar1.Position:=ProgressBar1.Position + 1;

if MediaPlayer1.Position = MediaPlayer1.TrackLength[1then 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