Jumat, 2024-03-29, 1:19 PM
Coretan And-U
         Menyenangkan saat berbagi pengalaman
Welcome Guest | RSS
Site menu
Login form
Kategori CoretanKu
Pemrograman Delphi [6]
Database [1]
HP [0]
Elektro [2]
Puisi Ku [3]
Digital Imaging [0]
Kategori Download
Free File Aplikasi [5]
Free Project Downloads [5]
DOTA MAP Downloads [2]
Gratis tentunya
Kalender
Site friends
  • Bikin Web di uCoz
  • piere.dikti.net
  • piere-blog.blogspot.com
  • Main » Articles » Pemrograman Delphi

    Mengolah TmediaPlayer delphi menjadi musik ato video player sederhana
    Mengolah TmediaPlayer Delphi



    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:

    Mengolah TmediaPlayer Delphi

    - langkah ketiga (show script)
    pada form yang udah ditaroh pernak pernik diatas, so selanjutnya dibangkitin script- script nya. script komplitnya sbb :

    unit Unit1;

    interface

    // ---jangan lupa tambahkan " mmsystem " pada " uses " dibawah..
    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, MPlayer, ExtCtrls, mmsystem;

    //--- tambah constanta disini untuk mengatur volume
    const
    // ---- ini buat loading volume ----
    MCI_SETAUDIO = $0873;
    MCI_DGV_SETAUDIO_VOLUME = $4002;
    MCI_DGV_SETAUDIO_ITEM = $00800000;
    MCI_DGV_SETAUDIO_VALUE = $01000000;
    MCI_DGV_STATUS_VOLUME = $4019;

    type
    TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    MediaPlayer1: TMediaPlayer;
    ListBox1: TListBox;
    OpenDialog1: TOpenDialog;
    TrackBar1: TTrackBar;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Timer1: TTimer;
    ProgressBar1: TProgressBar;
    procedure Mainkan; // tulis manual prosedur ini
    procedure FormCreate(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure TrackBar1Change(Sender: TObject);
    procedure ListBox1DblClick(Sender: TObject);
    procedure ListBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);

    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';

    //menyembunyikan TMediaPlayer
    MediaPlayer1.Visible := False;

    //mengedit TTrackbar
    Trackbar1.TickStyle := tsNone;
    Trackbar1.TickMarks := tmBoth;
    Trackbar1.Max :=1000; //diset nilai maximum jadi 1000, (nanti buat Volume)
    Trackbar1.Position := Trackbar1.Max ;

    //mengedit TButton
    button1.Caption := 'Play';
    button2.Caption := 'Pause';
    button3.Caption := 'Stop';
    button4.Caption := '<< prev';
    button5.Caption := 'Next >>';
    button6.Caption := 'Open File';

    //memfilter TOpendialog
    opendialog1.Filter :=
    'File multimedia (*.wav,*.mid,*.wmv,*.wma,*.mp3,*.mpg,*.mpeg,*.avi)'+'|*.wav;*.mid;*.wmv;*.wma;*.mp3;*.mpg;*.mpeg;*.avi';

    //mengedit TTimer
    Timer1.Enabled := false;
    Timer1.Interval := 250;
    end;

    // 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... :)

    Buat yang lg males nulis sendiri script code nya bisa download mentahannya disini..
    - artikel1.zip Berisi : "Project1.cfg", "Project1.dof", "Project1.dpr", "Project1.exe", "Project1.res", "readme.txt", "unit1.dcu", "unit1.ddp", "unit1.dfm", "unit1.pas".

    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..."

    NB : Coretan Di atas telah di publikasikan sebelumnya oleh http://piere.dikti.net/artikel1.php



    Source: http://piere.dikti.net/artikel1.php
    Category: Pemrograman Delphi | Added by: ArtrashBoy (2009-06-16)
    Views: 66645 | Comments: 2 | Tags: Mengolah TmediaPlayer delphi menjad | Rating: 5.0/1 |
    Total comments: 2
    2 yogi  
    0
    gan code TForm1.ListBox1KeyDown ini dimaana ?

    1 goesdek  
    0
    bang,,,yg mna yg ngatur kluaran videony nih??
    kok bisa langsung kluar gto aj videony??

    Only registered users can add comments.
    [ Registration | Login ]
    Pencarian
    Corentan Entry
    Pengulangan menggunakan "for" untuk tabel perkalian atau pertambahan (30520)
    Show or Hide Icon Desktop (12446)
    Menampilkan Nama, Bentuk dan Jumlah Font Text yg terinstal (11106)
    Contoh Rectangle, Style, Color (10105)
    Sekilas tentang OP AMP (11103)
    Tulisan Tanpa Makna "Malam PanjangKu" (11308)
    Tulisan Tanpa Makna "Me Vs Me" (8859)
    Tulisan Tanpa Makna "Forbiden Kingdom" (9705)
    Setetes pengertian Teknik Kendali (15806)
    Pengertian Database ato Basis Data (Dasar) (10941)
    Log off, shut down, restart ato reboot Pake delphi?? Bisa ko.. (9968)
    Mengolah TmediaPlayer delphi menjadi musik ato video player sederhana (66645)
    Statistics

    Total online: 1
    Guests: 1
    Users: 0
    Bookmark and Share
    Copyright © 2024, And-U Site
    Powered by uCoz