cara membuat mp3 player sederhana

Oleh Admin Unknown on 9.4.11

Memanfaatkan kemampuan Flash yang dapat memainkan file MP3 dengan cara membuat Sound object (di AS2, favoritku ;p), saya pernah iseng2 membuat versi cupu dari aplikasi MP3 player.. BTW, tau Winamp kan? nah aplikasi semacam ini yang saya istilahkan sebagai MP3 player (versi kerennya sih :D ), yah.. meskipun yang pernah saya buat tersebut hasilnya masih berupa fitur-fitur dasar sederhana: load file-file MP3, next track, previous track, tampilan informasi MP3nya, dan tampilan playlist (supaya user bisa memilih file MP3 yang ingin dimainkan dengan mengkliknya di playlist).
Cara buatnya, Flash dibuat memanjang ke bawah (biar rada mirip Winamp), simpan 3 buah movieclip yang sama (dimana di dalamnya terdapat sebuah dynamic text dengan instance name “teks“) namun diberikan instance name berbeda yaitu “browse_btn“, “kanan_btn“, dan “kiri_btn” (ketiganya akan berperan sebagai tombol untuk load files, play next track, dan play previous track). Sebuah dynamic text dengan instance name “tulisan_txt” (yang akan menampilkan nama artist, judul, dan ukuran waktu MP3 berjalan dimana informasi ini diambil dari ID3 tags MP3nya). Di bawahnya lagi sebagai tampilan playlist digunakan sebuah List Component dengan instance name “cmp_playlist“. Menyusul kemudian, baris ActionScriptnya disimpan di frame:
01import flash.net.FileReferenceList;
02 
03var playlist:Array = new Array(0);
04var musik:Sound = new Sound();
05var angka:Number = new Number(0);
06var fileRefList:FileReferenceList = new FileReferenceList();
07var listenerFileRefList:Object = new Object();
08var listHandler:Object = new Object();
09 
10fscommand("showmenu", false);
11kanan_btn.onPress = kanan;
12kiri_btn.onPress = kiri;
13browse_btn.onPress = browseFile;
14browse_btn.teks.text = "load";
15kiri_btn.teks.text = "prev";
16kanan_btn.teks.text = "next";
17fileRefList.addListener(listenerFileRefList);
18cmp_playlist.addEventListener("change", listHandler);
19cmp_playlist.setStyle("fontFamily", "corbel");
20cmp_playlist.setStyle("fontSize", "12");
21tulisan_txt.text = "load file MP3 terlebih dulu..\n (maaf, di versi cupu ini, file MP3nya mesti sefolder sama aplikasinya)";
22 
23listHandler.change = function(evt:Object){
24    if(angka != evt.target.selectedItem.data){
25        angka = evt.target.selectedItem.data;
26        loadMusik();
27    }
28}
29 
30musik.onSoundComplete = function(){
31    kanan();
32}
33 
34musik.onLoad = function(success:Boolean){
35    if (success){
36        musik.start();
37    }
38    else{
39        tulisan_txt = "salah load file";
40    }
41}
42 
43listenerFileRefList.onSelect = function(file:FileReferenceList){
44    for(var i = 0; i < file.fileList.length; i++){
45        var filePilihan = file.fileList[i].name;
46        if(filePilihan.substr(-3, 3) == "mp3"){
47            cmp_playlist.addItem({label:filePilihan, data:playlist.length});
48            playlist.push(filePilihan);
49        }
50    }
51    loadMusik();
52}
53 
54function browseFile(){
55    fileRefList.browse([{description:"Ingat: file MP3 sefolder saja! (maklum versi cupu)", extension:"*.mp3"}]);
56}
57 
58function loadMusik(){
59    musik.loadSound(playlist[angka], true);
60}
61 
62function kanan(){
63    if(playlist.length < 1){
64        tulisan_txt.text = "load filenya dulu woi..\n(tombolnya di bawah playlist)";
65    }
66    else{
67        angka += 1;
68        if(angka >= playlist.length){
69            angka = 0;
70        }
71        loadMusik();
72    }
73}
74 
75function kiri(){
76    if(playlist.length < 1){
77        tulisan_txt.text = "load filenya dulu woi..\n(tombolnya di bawah playlist)";
78    }
79    else{
80        angka -= 1;
81        if(angka <= 0)   {
82            angka = playlist.length - 1;
83        }
84        loadMusik();
85    }
86}
87 
88this.onEnterFrame=function(){
89    var posisi:String = musik.position.toString();
90    var durasi:String = musik.duration.toString();
91    var artist:String = musik.id3.artist.toString();
92    var judul:String = musik.id3.songname.toString();
93    var menitPlaying:String = Math.floor(posisi/60000) + ":" + Math.round((posisi/1000)%60);
94    var menitTotal:String = Math.floor(durasi/60000) + ":" + Math.round((durasi/1000)%60);
95 
96    if(playlist.length >= 1){
97        tulisan_txt.text = artist + " - " + judul + "\n" + menitPlaying + " / " + menitTotal;
98    }
99}
Preview
Mohon maaf kalau kodenya terlihat tidak efisien, nampak buggy, dan sulit dibaca algoritmanya acak-acakan :D yang penting fungsional dulu lah ya.. 8) Tekan Ctrl+Enter untuk melihat preview movie.
Namun ada keterbatasan yang cukup mengganggu dari aplikasi yang saya buat ini, yaitu:
Cuman bisa menjalankan file MP3 yang sefolder dengan SWF-nya, klo gak: undefined -__-’
Zzzzz.. Mungkin saya salah cara ngakses file dari objek FileReferenceList? atau sistem sandbox objek Sound yang tidak memperbolehkan loadSound diluar direktori?.. Anybody knows how can I play MP3 files that’s stored anywhere, so it could be like a real MP3 player? please share… Any improvement welcome..
Bagi yang berminat untuk melihat contoh aplikasinya (.exe) sila unduh di http://www.box.net/shared/30010rjlmf

Post By Category

Follow Us

Facebook

Thanks for visiting my blog,
I hope you are happy