Mengolah TmediaPlayer delphi menjadi musik ato video player sederhana
Yuk belajar pemrograman pake delphi bareng..
Kali ini kita coba buat music ato video player sederhana pake TMediaPlayer yang ada di IDE Delphi.
so kamu bisa mainin file music ato file video kamu, pake winamp-winampman buatan kamu sendiri..
Btw sebelum membahas jauh, ada baiknya kamu tau, klo ga semua file multimedia nantinya bisa dimainin,
yang artinya file yang suport ma TMediaPlayer buatan IDE Delphi ini terbatas. n file-file yang support adalah
sbb : [ *.wav, *.mid,*.wmv,*.wma, *.mp3, *.mpg, *.mpeg, *.avi ].
yuk mulai yuk..
ada beberapa syarat sebelum mulai.. :)
syarat cuma satu, yaitu : di komputer kamu dah ke instal borland delphi, versi berapa aja ga masalah n di komputerku delphi 6.
- langkah awal (membuka delphi)
kita buka borland delphi trus kamu simpen dulu aja unit ma project-nya di disk kamu, nama unit dan project terserah kamu.
misal, dibuat default aja namanya "unit1.pas" ma "project1.dpr".
- langkah kedua (menaroh pernak pernik komponen)
Setelah unit n project dah siap, selanjutnya ambil n taroh dari IDE delphi :
1. 6 buah TLabel,
2. 1 buah TMediaPlayer,
3. 1 buah TListBox,
4. 1 buah TProgressbar,
4. 1 buah TTrackBar,
5. 6 buah TButton,
6. 1 buah TOpenDialog, dan
7. 1 buah TTimer.
Buat susunan letaknya sebetule terserah kamu, tapi buat bayangan kamu bisa conto gmb di bawah:
- langkah ketiga (show script)
pada form yang udah ditaroh pernak pernik diatas, so selanjutnya dibangkitin script- script nya.
script komplitnya sbb :
private { Private declarations }
// tambahkan " index " berupa integer, untuk playlist index
index:integer; public { Public declarations } end;
var
Form1: TForm1;
implementation
{$R *.dfm}
// tambahkan " type " untuk mengatur seting volume type
MCI_DGV_SETAUDIO_PARMS = record // volume
dwCallback: DWORD;
dwItem: DWORD;
dwValue: DWORD;
dwOver: DWORD;
lpstrAlgorithm: PChar;
lpstrQuality: PChar; end;
// tambahkan " type " untuk atur status volume type
MCI_STATUS_PARMS = record // volume
dwCallback: DWORD;
dwReturn: DWORD;
dwItem: DWORD;
dwTrack: DWORD; end;
// tulis prosedur set volume seperti dibawah procedure MPSetVolume(MP: TMediaPlayer; Volume: Integer) ; var
p: MCI_DGV_SETAUDIO_PARMS; begin
p.dwCallback := 0;
p.dwItem := MCI_DGV_SETAUDIO_VOLUME;
p.dwValue := Volume;
p.dwOver := 0;
p.lpstrAlgorithm := nil;
p.lpstrQuality := nil;
mciSendCommand(MP.DeviceID, MCI_SETAUDIO, MCI_DGV_SETAUDIO_VALUE
or MCI_DGV_SETAUDIO_ITEM, Cardinal(@p)) ; end;
{tulis fungsi untuk dapatkan Volume, range 0 - 1000} function MPGetVolume(MP: TMediaPlayer): Integer; var
p: MCI_STATUS_PARMS; begin
p.dwCallback := 0;
p.dwItem := MCI_DGV_STATUS_VOLUME;
mciSendCommand(MP.DeviceID, MCI_STATUS, MCI_STATUS_ITEM, Cardinal(@p)) ;
Result := p.dwReturn; end;
// ---------------------------- prosedur mainkan musix or video ---------------
// play musik or video gt loh.. >,< procedure Tform1.Mainkan; var
i:integer; begin
MediaPlayer1.FileName := listbox1.Items.Strings[index];
MediaPlayer1.Open;
i:=MediaPlayer1.Length div 1000;
Label3.Caption := format('%2.2d:%2.2d',[i div 60 , i mod 60]);
Label4.Caption := listbox1.Items.Strings[index];
ProgressBar1.Max := MediaPlayer1.Length ;
MediaPlayer1.Play;
MPSetVolume(MediaPlayer1, TrackBar1.Position );
Timer1.Enabled := true;
Listbox1.Refresh ; end;
// prosedure saat form dibuat procedure TForm1.FormCreate(Sender: TObject); begin // ganti caption form
form1.Caption := 'Player dengan TMediaPlayer Delphi..';
// mengedit tampilan dan ukuran TLabel...
Label1.Caption := '00:00';
Label1.Font.Size := 18;
Label2.Caption := 'Total waktu :';
Label2.Font.Size := 12;
Label3.Caption := '00:00';
Label3.Font.Size := 12;
Label4.Caption := 'Title';
Label5.Caption := 'Volume:';
Label6.Caption := '* Press - Delete - pada keyboard untuk menghapus file pada playlist';
// prosedur memanggil file ato open file procedure TForm1.Button6Click(Sender: TObject); begin if opendialog1.Execute then begin if opendialog1.FileName = '' then begin //Tidak lakukan apa2 end else if mediaplayer1.FileName = '' then begin
listbox1.Items.Add(opendialog1.FileName );
index:=0;
Mainkan;
Listbox1.ItemIndex := index; end else begin
listbox1.Items.Add(opendialog1.FileName ); end;
end;
end;
{ ni prosedur timernya.. (mengatur posisi progressbar n jika musik habis ke file selanjutnya ato kembali ke awal)} procedure TForm1.Timer1Timer(Sender: TObject); var
i:LongInt; begin
ProgressBar1.Position := MediaPlayer1.Position ;
i := ProgressBar1.Position div 1000;
label1.Caption := Format ('%2.2d:%2.2d',
[i div 60, i mod 60]); if label1.Caption = label3.Caption then begin
index := index + 1;
Listbox1.ItemIndex := index; if Listbox1.itemindex <> (index) then begin
index:=0;
Mainkan;
Listbox1.ItemIndex := index; end else begin
Mainkan;
Listbox1.ItemIndex := index; end;
end;
end;
// prosedur tombol play / tombol 1 saat diklik procedure TForm1.Button1Click(Sender: TObject); begin if ListBox1.Items.Count = 0 then begin // jika playlist kosong bari ga ngapa-ngapain.. end else if MediaPlayer1.Mode = mppaused then begin
MediaPlayer1.StartPos := ProgressBar1.Position;
MediaPlayer1.Play ;
Timer1.Enabled := true; end else if MediaPlayer1.Mode = mpPlaying then begin // jika musik lagi main brati ga ngopo ngopo.. end else begin
Mainkan;
ListBox1.ItemIndex := index; end;
end;
// prosedur tombol pause procedure TForm1.Button2Click(Sender: TObject); begin if MediaPlayer1.FileName = '' then begin // ga ngapa-ngapain end else if (MediaPlayer1.Mode = mpPaused) then begin // ga ngapa-ngapain end else begin
MediaPlayer1.Pause ;
Timer1.Enabled := false; end;
end;
// prosedur tombol stop procedure TForm1.Button3Click(Sender: TObject); begin
if MediaPlayer1.FileName = '' then begin // ga ngapa-ngapain end else begin
MediaPlayer1.Stop ;
Timer1.Enabled := false;
label1.Caption := '00:00';
ProgressBar1.Position := 0; end;
end;
// prosedur tombol next procedure TForm1.Button5Click(Sender: TObject); begin
if Listbox1.Items.Count = 0 then begin // ngalamun end else begin
index := index + 1;
Listbox1.ItemIndex := index; if Listbox1.itemindex <> (index) then begin
index:=0;
Mainkan;
Listbox1.ItemIndex := index; end else begin
Mainkan;
Listbox1.ItemIndex := index; end;
end;
end;
// prosedur tombol prev procedure TForm1.Button4Click(Sender: TObject); begin
if Listbox1.Items.Count = 0 then begin // ngalamun end else begin
index := index - 1;
Listbox1.ItemIndex := index; if Listbox1.itemindex = - 1 then begin
index:=Listbox1.Items.Count - 1 ;
Mainkan;
Listbox1.ItemIndex := index; end else begin
Mainkan;
Listbox1.ItemIndex := index; end;
end;
end;
// prosedure saat volume diubah procedure TForm1.TrackBar1Change(Sender: TObject); begin
MPSetVolume(MediaPlayer1, Trackbar1.Position ); end;
// double klik pada playlist, music or video maen procedure TForm1.ListBox1DblClick(Sender: TObject); begin
index:= Listbox1.ItemIndex ;
Mainkan; end;
// prosedur saat dipencet tombol delete pada keyboard procedure TForm1.ListBox1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); var
DeleteIndex:Integer; begin
if key = VK_Delete then begin
deleteIndex:= Listbox1.ItemIndex ;
Listbox1.Items.Delete(DeleteIndex); end;
end;
end.
// -- Script selesai --
buat kamu yang bingung klo nulis script codenya satu- satu, kamu bisa langsung copy-paste all script kode diatas..
btw klo kamu langsung copy-paste semua kode, kita saranin komponen yang
dibutuhkan (langkah kedua) udah ada terlebih dahulu, supaya tidak
error. habis tu tinggal kamu paste ke code explore delphi, trus jangan
lupa bangkitin komponen prosedurnya... gt deh... :)
ArtrashBoy Say : "mengolah TmediaPlayer dengan IDE delphi seperti
diatas, tidaklah monoton seperti diatas. kamu bisa kembangin sendiri
ato menambah sendiri sesuai keinginan kamu.. semoga bermanfaat buat
kalayak banyak..."