saeed6162
پنج شنبه 20 خرداد 1389, 09:18 صبح
سلام به دوستان عزیز
من تو پروژم نیاز داشتم تا از مدیاپلیر استفاده کنم
ولی برای همگام سازی trackbar و mediaplayer ، برای حرکت در طول video و کنترل اونمشکلات زیادی برام پیش اومد
بعد از جستجوهای زیاد به قطعه کدی رسیدم که مشکلم رو حل کرد.
کل یونیت مربوط به قسمت مدیاپیلیر رو براتون می ذارم که امیدوارم به دردتون بخوره
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, MPlayer, ExtCtrls, ComCtrls, Menus, MMSystem;
type
TForm1 = class(TForm)
MediaPlayer1: TMediaPlayer;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
OpenDialog1: TOpenDialog;
TrackBar1: TTrackBar;
Timer1: TTimer;
MainMenu1: TMainMenu;
File1: TMenuItem;
Open1: TMenuItem;
Exit1: TMenuItem;
Button5: TButton;
Help1: TMenuItem;
About1: TMenuItem;
Label1: TLabel;
Label2: TLabel;
TrackBar2: TTrackBar;
CheckBox1: TCheckBox;
StaticText1: TStaticText;
Button6: TButton;
Button7: TButton;
Image1: TImage;
Timer2: TTimer;
ListBox1: TListBox;
Button8: TButton;
Button9: TButton;
Button10: TButton;
procedure ListBox1DblClick(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ListBox1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure MediaPlayer1Notify(Sender: TObject);
procedure TrackBar2Change(Sender: TObject);
procedure About1Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Open1Click(Sender: TObject);
procedure Exit1Click(Sender: TObject);
procedure TrackBar1Change(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
B:TBitmap;
end;
var
Form1: TForm1;
Zvuk: String;
pjesma:string;
implementation
uses Unit2, Unit3;
{$R *.dfm}
type
TGlasnoca = record
Levi, Desni: Word;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
MediaPlayer1.Close;
MediaPlayer1.FileName := Pjesma ;
MediaPlayer1.Open;
MediaPlayer1.Play;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
MediaPlayer1.Pause;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
Stanje: Boolean;
begin
Stanje := CheckBox1.Checked;
CheckBox1.Checked := False;
MediaPlayer1.Stop;
CheckBox1.Checked := Stanje;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
if OpenDialog1.Execute then
ListBox1.Items.Add(OpenDialog1.FileName);
end;
procedure TForm1.FormCreate(Sender: TObject);
var a:textfile;
begin
try
listbox1.Items.LoadFromFile('lista.lst');
except
assignfile(a,'c:\lista.lst');
rewrite(a);
closefile(a);
end;
Zvuk := '';
B:=TBitmap.Create;
B.Width:=Image1.Width;
B.Height:=Image1.Height;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
TrackBar1.OnChange := nil;
TrackBar1.Position := MediaPlayer1.Position;
TrackBar1.OnChange := TrackBar1Change;
Label1.Caption:=formatdatetime('dd.mm.yyyy', Date);
Label2.Caption:=formatdatetime('hh.mm.ss', Time);
end;
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
if (MediaPlayer1.Mode = mpPlaying) or
(MediaPlayer1.Mode = mpPaused) then
begin
MediaPlayer1.Position := TrackBar1.Position;
MediaPlayer1.Play;
end;
end;
procedure TForm1.Exit1Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Open1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
ListBox1.Items.Add(OpenDialog1.FileName);
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
showmessage('Thank you for using my software.Coded by Passwd!!');
close;
end;
procedure TForm1.About1Click(Sender: TObject);
begin
Form2.ShowModal;
end;
procedure TForm1.TrackBar2Change(Sender: TObject);
var
G: TGlasnoca;
begin
G.Levi := TrackBar2.Position;
G.Desni := TrackBar2.Position;
waveOutSetVolume(0, Cardinal(G));
end;
procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin
if (MediaPlayer1.Mode = mpStopped) and
CheckBox1.Checked then
begin
MediaPlayer1.Rewind;
MediaPlayer1.Play;
end;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
Form1.Height:=225;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
Form1.Height:=534;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
B.Canvas.ellipse(Random(B.Width), Random(B.Height),
Random(B.Width), Random(B.Height));
B.Canvas.rectangle(Random(B.Width), Random(B.Height),
Random(B.Width), Random(B.Height));
Image1.Picture.Bitmap := B;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
B.Free;
end;
procedure TForm1.ListBox1Click(Sender: TObject);
begin
if ListBox1.ItemIndex <> -1 then
pjesma:=ListBox1.Items[ListBox1.ItemIndex];
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
listbox1.Items.SaveToFile('c:\lista.lst');
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
mediaPlayer1.Close;
form3.showmodal;
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
Listbox1.DeleteSelected;
end;
procedure TForm1.Button10Click(Sender: TObject);
begin
listbox1.Clear;
end;
procedure TForm1.ListBox1DblClick(Sender: TObject);
begin
MediaPlayer1.Close;
MediaPlayer1.FileName:=pjesma;
MediaPlayer1.Open;
MediaPlayer1.Play;
end;
end.
من تو پروژم نیاز داشتم تا از مدیاپلیر استفاده کنم
ولی برای همگام سازی trackbar و mediaplayer ، برای حرکت در طول video و کنترل اونمشکلات زیادی برام پیش اومد
بعد از جستجوهای زیاد به قطعه کدی رسیدم که مشکلم رو حل کرد.
کل یونیت مربوط به قسمت مدیاپیلیر رو براتون می ذارم که امیدوارم به دردتون بخوره
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, MPlayer, ExtCtrls, ComCtrls, Menus, MMSystem;
type
TForm1 = class(TForm)
MediaPlayer1: TMediaPlayer;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
OpenDialog1: TOpenDialog;
TrackBar1: TTrackBar;
Timer1: TTimer;
MainMenu1: TMainMenu;
File1: TMenuItem;
Open1: TMenuItem;
Exit1: TMenuItem;
Button5: TButton;
Help1: TMenuItem;
About1: TMenuItem;
Label1: TLabel;
Label2: TLabel;
TrackBar2: TTrackBar;
CheckBox1: TCheckBox;
StaticText1: TStaticText;
Button6: TButton;
Button7: TButton;
Image1: TImage;
Timer2: TTimer;
ListBox1: TListBox;
Button8: TButton;
Button9: TButton;
Button10: TButton;
procedure ListBox1DblClick(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ListBox1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure MediaPlayer1Notify(Sender: TObject);
procedure TrackBar2Change(Sender: TObject);
procedure About1Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Open1Click(Sender: TObject);
procedure Exit1Click(Sender: TObject);
procedure TrackBar1Change(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
B:TBitmap;
end;
var
Form1: TForm1;
Zvuk: String;
pjesma:string;
implementation
uses Unit2, Unit3;
{$R *.dfm}
type
TGlasnoca = record
Levi, Desni: Word;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
MediaPlayer1.Close;
MediaPlayer1.FileName := Pjesma ;
MediaPlayer1.Open;
MediaPlayer1.Play;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
MediaPlayer1.Pause;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
Stanje: Boolean;
begin
Stanje := CheckBox1.Checked;
CheckBox1.Checked := False;
MediaPlayer1.Stop;
CheckBox1.Checked := Stanje;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
if OpenDialog1.Execute then
ListBox1.Items.Add(OpenDialog1.FileName);
end;
procedure TForm1.FormCreate(Sender: TObject);
var a:textfile;
begin
try
listbox1.Items.LoadFromFile('lista.lst');
except
assignfile(a,'c:\lista.lst');
rewrite(a);
closefile(a);
end;
Zvuk := '';
B:=TBitmap.Create;
B.Width:=Image1.Width;
B.Height:=Image1.Height;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
TrackBar1.OnChange := nil;
TrackBar1.Position := MediaPlayer1.Position;
TrackBar1.OnChange := TrackBar1Change;
Label1.Caption:=formatdatetime('dd.mm.yyyy', Date);
Label2.Caption:=formatdatetime('hh.mm.ss', Time);
end;
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
if (MediaPlayer1.Mode = mpPlaying) or
(MediaPlayer1.Mode = mpPaused) then
begin
MediaPlayer1.Position := TrackBar1.Position;
MediaPlayer1.Play;
end;
end;
procedure TForm1.Exit1Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Open1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
ListBox1.Items.Add(OpenDialog1.FileName);
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
showmessage('Thank you for using my software.Coded by Passwd!!');
close;
end;
procedure TForm1.About1Click(Sender: TObject);
begin
Form2.ShowModal;
end;
procedure TForm1.TrackBar2Change(Sender: TObject);
var
G: TGlasnoca;
begin
G.Levi := TrackBar2.Position;
G.Desni := TrackBar2.Position;
waveOutSetVolume(0, Cardinal(G));
end;
procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin
if (MediaPlayer1.Mode = mpStopped) and
CheckBox1.Checked then
begin
MediaPlayer1.Rewind;
MediaPlayer1.Play;
end;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
Form1.Height:=225;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
Form1.Height:=534;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
B.Canvas.ellipse(Random(B.Width), Random(B.Height),
Random(B.Width), Random(B.Height));
B.Canvas.rectangle(Random(B.Width), Random(B.Height),
Random(B.Width), Random(B.Height));
Image1.Picture.Bitmap := B;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
B.Free;
end;
procedure TForm1.ListBox1Click(Sender: TObject);
begin
if ListBox1.ItemIndex <> -1 then
pjesma:=ListBox1.Items[ListBox1.ItemIndex];
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
listbox1.Items.SaveToFile('c:\lista.lst');
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
mediaPlayer1.Close;
form3.showmodal;
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
Listbox1.DeleteSelected;
end;
procedure TForm1.Button10Click(Sender: TObject);
begin
listbox1.Clear;
end;
procedure TForm1.ListBox1DblClick(Sender: TObject);
begin
MediaPlayer1.Close;
MediaPlayer1.FileName:=pjesma;
MediaPlayer1.Open;
MediaPlayer1.Play;
end;
end.