Buat Aplikasi MP3 Player Sederhana dengan Flash+AS2


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:

import flash.net.FileReferenceList;

var playlist:Array = new Array(0);
var musik:Sound = new Sound();
var angka:Number = new Number(0);
var fileRefList:FileReferenceList = new FileReferenceList();
var listenerFileRefList:Object = new Object();
var listHandler:Object = new Object();

fscommand("showmenu", false);
kanan_btn.onPress = kanan;
kiri_btn.onPress = kiri;
browse_btn.onPress = browseFile;
browse_btn.teks.text = "load";
kiri_btn.teks.text = "prev";
kanan_btn.teks.text = "next";
fileRefList.addListener(listenerFileRefList);
cmp_playlist.addEventListener("change", listHandler);
cmp_playlist.setStyle("fontFamily", "corbel");
cmp_playlist.setStyle("fontSize", "12");
tulisan_txt.text = "load file MP3 terlebih dulu..\n (maaf, di versi cupu ini, file MP3nya mesti sefolder sama aplikasinya)";

listHandler.change = function(evt:Object){
    if(angka != evt.target.selectedItem.data){
		angka = evt.target.selectedItem.data;
		loadMusik();
	}
}

musik.onSoundComplete = function(){
	kanan();
}

musik.onLoad = function(success:Boolean){
	if (success){
		musik.start();
	}
	else{
		tulisan_txt = "salah load file";
	}
}

listenerFileRefList.onSelect = function(file:FileReferenceList){
	for(var i = 0; i < file.fileList.length; i++){
		var filePilihan = file.fileList[i].name;
		if(filePilihan.substr(-3, 3) == "mp3"){
			cmp_playlist.addItem({label:filePilihan, data:playlist.length});
			playlist.push(filePilihan);
		}
	}
	loadMusik();
}

function browseFile(){
	fileRefList.browse([{description:"Ingat: file MP3 sefolder saja! (maklum versi cupu)", extension:"*.mp3"}]);
}

function loadMusik(){
	musik.loadSound(playlist[angka], true);
}

function kanan(){
	if(playlist.length < 1){
		tulisan_txt.text = "load filenya dulu woi..\n(tombolnya di bawah playlist)";
	}
	else{
		angka += 1;
		if(angka >= playlist.length){
			angka = 0;
		}
		loadMusik();
	}
}

function kiri(){
	if(playlist.length < 1){
		tulisan_txt.text = "load filenya dulu woi..\n(tombolnya di bawah playlist)";
	}
	else{
		angka -= 1;
		if(angka <= 0)	{
			angka = playlist.length - 1;
		}
		loadMusik();
	}
}

this.onEnterFrame=function(){
	var posisi:String = musik.position.toString();
	var durasi:String = musik.duration.toString();
	var artist:String = musik.id3.artist.toString();
	var judul:String = musik.id3.songname.toString();
	var menitPlaying:String = Math.floor(posisi/60000) + ":" + Math.round((posisi/1000)%60);
	var menitTotal:String = Math.floor(durasi/60000) + ":" + Math.round((durasi/1000)%60);

	if(playlist.length >= 1){
		tulisan_txt.text = artist + " - " + judul + "\n" + menitPlaying + " / " + menitTotal;
	}
}

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

***

Referensi terkait:

  • http://flash-reference.icod.de/flash/net/FileReferenceList.html
  • http://flash-reference.icod.de/Sound.html
  • Tips Trik Flash, Tabloid PC-Mild Edisi 6/2010
  • Setting Proxy Pada Linux Console


    Nyobain yum atau command lainnya yang ngambil data dari internet tetapi selalu gagal karena terhalang proxy? bahkan meskipun di web browsernya sudah disetting dengan akun yang terautentikasi pula? nah itulah yang saya alami… (karena akses internet di kampus mesti make akun AI3 untuk bisa lewat si cumi)… solusinya? Secara umum, dari apa yang saya baca di salah satu thread forum yang membahas ini, akses dari console (command line di linux) memang tidak secara otomatis ikut tersetting. Untuk itu kita perlu menset akses proxy dengan menambahkan environment variable http_proxy pada shell, caranya adalah dengan mengetikkan command pada linux console:

    export http_proxy="http://namausernya:passwordnya@alamatproxyservernya:nomerportnya/"
    # Contoh:
    export http_proxy="http://faisalman:password@cache1.itb.ac.id:8080/"
    export ftp_proxy="http://faisalman:password@cache1.itb.ac.id:8080/"
    export no_proxy="localhost, 127.0.0.1, .itb.ac.id, 167.205.0.0/16"
    

    Sebaliknya, jika sudah kembali menggunakan akses internet yang direct connection (tidak menggunakan proxy), set ulang dengan command pada linux console:

    export http_proxy=""
    export ftp_proxy=""
    export no_proxy=""
    

    Untuk memeriksa settingan proxy mana yang sedang digunakan kita dapat melihatnya dengan mengetikkan command pada linux console:

    echo $http_proxy
    echo $ftp_proxy
    echo $no_proxy
    

    Alternatif lain, kita dapat mendefinisikan sendiri sebuah fungsi untuk mensetting akun proxy dengan menggunakan shell script sehingga nantinya tinggal mengetikkan nama fungsi pada shell dan mengisi variabel-variabel yang dibutuhkan. Caranya yaitu dengan buat sebuah file shell script di dalam folder /etc/profile.d berekstensi .sh jika menggunakan bash (yang paling umum digunakan di linux) atau .csh untuk c-shell, kita bisa mengecek jenis shell apa yang digunakan ketikkan perintah pada consolenya:

    echo $SHELL
    

    Misalkan file shell script yang akan dibuat namanya settinganproxy.sh, maka ketikkan perintah pada linux console:

    sudo nano /etc/profile.d/settinganproxy.sh
    

    Berikan baris script berikut pada file shell script tersebut dalam nano[1] text editor:

    # Setting akses proxy
    function setaksesproxy()
    {
      echo -n "proxy: "
      read -e alamatproxy
      echo -n "port: "
      read -e nomerport
      echo -n "username: "
      read -e namauser
      echo -n "password: "
      read -es proxypass
      echo -n "domain tanpa proxy: "
      read -e exclude
      echo ""
      export http_proxy="http://$namauser:$proxypass@$alamatproxy:$nomerport/"
      export ftp_proxy="http://$namauser:$proxypass@$alamatproxy:$nomerport/"
      export no_proxy="localhost, 127.0.0.1, $exclude"
    }
    
    # Clear proxy
    function setnoproxy()
    {
      export http_proxy=""
      export ftp_proxy=""
      export no_proxy=""
    }
    

    Sehingga di shell consolenya linux kita tinggal mengetikkan nama fungsinya saja dan mengisi input-inputnya sajah :D

    Konfigurasi di atas menggunakan asumsi bahwa jaringan ber-proxy tidak digunakan setiap saat, atau menggunakan jaringan ber-proxy yang berbeda-beda, atau akun yang digunakan berbeda-beda. Sedangkan jika setting proxy dibutuhkan setiap saat, mungkin perlu juga untuk menyimpan akun dan password proxy pada user tertentu yaitu dengan mengedit file .bash_profile (file gak kelihatan karena hidden) yang terletak di home directory dari user yang diinginkan untuk diberikan autentikasi proxynya, tinggal ketikkan perintah pada linux console:

    nano /home/namauseryangdiinginkan/.bash_profile
    

    Berikan baris perintah berikut pada file tersebut:

    export http_proxy="http://namausernya:passwordnya@alamatproxynya:nomerportnya/"
    export ftp_proxy="http://namausernya:passwordnya@alamatproxynya:nomerportnya/"
    export no_proxy="domain-atau-IP-address-tanpa-proxy-misalnya-127.0.0.1"
    

    Footnote:
    [1] Nano merupakan program editor pada console linux yang biasanya sudah terinstall secara default, jika tidak ada silakan menggunakan editor favorit lain semisal vim, emacs, dll

    Akses Serial Port di Linux


    Tau program HyperTerminal kan? kalau komputernya Windows XP bisa dilihat di Start Menu > Accessories > Communications > HyperTerminal (dengan asumsi waktu nginstall windows paket instalasi standarnya diinstall semua).

    Ini nih HyperTerminal tuh.. (gambar ngambil dari gugel)

    Kalaulah dulu saya tidak mengambil mata kuliah yang ada praktikum pake HyperTerminalnya (lupa praktikum apaan :p) mungkin saya yang gaptek ini tidak akan tahu apa gunanya program misterius bernama HyperTerminal di Windows itu, dan dengar-denger katanya tidak dimasukkan lagi sejak munculnya Windows Vista dan Windows 7 hehe.. Padahal banyak juga loh device yang salah satu akses konfigurasinya lewat port serial RS-232. Continue reading “Akses Serial Port di Linux”

    Facebook Chat via Pidgin


    Teman sebelah (kalau ada) sedang buka Facebook juga kan? ya ya ya, tidak heran, berdasarkan catatan Alexa [1], Facebook merupakan situs web yang paling populer di Indonesia. Dari sekian banyak fasilitas yang ada, salah satu fitur yang digemari di Facebook adalah kemampuan chat di dalam tampilan webnya langsung, meskipun kadang cukup mengganggu. Nah, bagaimana caranya mengaktifkan Facebook Chat di luar situs webnya?

    Mungkin ada 1001 cara supaya bisa menggunakan fitur Facebook Chat di luar situs Facebook lewat aplikasi-aplikasi pihak ketiga apapun itu.  Pada kesempatan ini saya mencoba salah satu IM yang banyak digunakan selain YM (Yahoo! Messenger), yaitu Pidgin (yang dulu namanya GAIM).

    Ada banyak cara juga supaya bisa masang Facebook Chat di Pidgin, antara lain:

    Cara 1:
    Pasang plugin Pidgin-Facebook Chat[2]
    Download dan Install sahaja pluginnya di http://code.google.com/p/pidgin-facebookchat/downloads/list

    Cara 2:
    Menggunakan protokol XMPP (Jabber) [3]
    – Buka program Pidgin
    – Klik menu “Accounts”
    – Pilih menu “Manage Accounts”
    – Klik tombol “Add”
    – Settingan di bagian tab “Basic”:

    * Protocol: XMPP
    * Username: <masukin username Facebook>
    * Domain: chat.facebook.com
    * Resource: Pidgin
    * Password: <masukin password Facebook>
    * Local alias: <masukin nama Facebook>

    – Settingan di bagian tab “Advanced”:

    * Connect port: 5222
    * Connect server: chat.facebook.com
    * Hilangkan ceklis di pilihan “Require SSL/TLS”

    Untuk melihat settingan jelasnya, login dulu ke Facebook, buka http://www.facebook.com/sitetour/chat.php kemudian pilih Instant Messengernya, apakah Pidgin, Adium, iChat, dll.

    Belum punya Pidgin? unduh sahaja installernya di http://www.pidgin.im/

    ***

    Referensi:
    [1] http://www.alexa.com/topsites/countries/ID
    [2] http://code.google.com/p/pidgin-facebookchat/
    [3] http://www.facebook.com/sitetour/chat.php

    Google Chrome Sudah Dapat Di Download


    Update pas sahur barusan: Akhirnya Google Chrome sudah tersedia untuk dicoba download, http://www.google.com/chrome/?hl=en, karena itu maka tulisan kemarin ini yang sudah tidak berlakunya saya corat-coret saja 8)

    Buka blog pakek Google Chrome. Tipis dan ringan, jadi serasa gak pakek browser...

    ——————–

    Lagi rame2nya ini browser terbaru keluaran google dicari-cari. Kemarin nyari2 tempat downloadnya gak ketemu :? ternyata memang Google belum menyediakan link downloadnya (halah :twisted: ) dan versi beta-nya  katanya akan tersedia untuk didownload dalam waktu dekat..  sudah tersedia untuk didownload (itupun baru untuk Windows saja)

    So check in again tomorrow to try Google Chrome for yourself. We’ll post an update here as soon as it’s ready. (kata official blognya google kemaren)

    Google Chrome now live
    In yesterday’s post on Google Chrome, we promised to let you know when it would be available for everyone to try — and that time is now.
    (kata official blognya google barusan)

    Menurut beberapa sumber, link tempat downloadnya itu ada di http://www.google.com/chrome atau  di http://gears.google.com/chrome/?hl=en (mana sih yg bener? :? dua2nya bener ternyata :mrgreen: )

    Screenshot penampakan Google Chrome yang berkeliaran di banyak web yang membahas tentang Google Chrome

    Banyak sekali halaman2 web yang membahas tentang browser baru ini, intinya Google Chrome ini merupakan proyek open source browser dengan basisnya Webkit (sama seperti Safari dan Konqueror), punya JavaScript Virtual Machine baru bernama V8 yang katanya paling canggih, udah terinstall add-on Google Gears secara default, masang tabnya di atas address bar (gak dibawah seperti browser biasanya), dan yang teramat berbeda adalah si Google Chrome ini menggunakan konsep multi-process, dimana setiap tab dan plugin masing2 memiliki process sendiri (ditambah dengan konsep sandboxing pula). Lebih jelasnya coba deh baca di http://blogoscoped.com/google-chrome penjelasannya unik karena berbentuk komik jadi enak dibaca dan lebih mudah dipahami :D disitu dijelasin paradigma baru mengenai peran browser saat ini dengan semakin berkembangnya aplikasi web dan bla.. bla.. bla.. sehingga lahirlah Google Chrome ini…

    ——————-

    Barusan googling dengan browser kesayangan, FireFox 3, dan  menemukan sebuah situs yang ngasih countdown downloadnya Google Chrome di http://www.freechromethemes.com/DownloadGoogleChrome.php, ternyata dirilisnya masih 4 jam 45 menit lagi.. :( karena tulisan ini dibuat 2 September 2008 jam 11.15an WIB (waktu Indonesia bagian Bandung), berarti linknya baru available 3 September 2008 sekitar Jam 04.30an WIB (waktu Indonesia bagian Bandung).. kita buktikan nanti apakah si situs ini bener atau bohong.. soalnya soalnya official blognya google aja nggak ngasih tau kapan rilisnya 8) .. sekarang saya mau tidur dulu, tolong bangunin sahur ya.. Zzz

    Kalau situs ini bener, berarti di Bandung mungkin sekitar waktu Imsak dan Subuh.. :D

    Zzz.. yang tahu berita benernya silakan komentar, terutama seputar info kapan dan dimana google chrome download available.. zzZZ

    Karena tulisan yg kemaren (waktu belum bisa download) sudah tidak relevan, jadi gpp saya corat-coret 8)

    Download FireFox 3 Sekarang?


    Memang masih versi RC1 sih, tapi menarik juga baca arti “Release Candidate“:

    For Mozilla it means what says in the label: unless there is some major bug reported for this release, the “release candidate” part will just be dropped form the name and become Firefox 3 final.

    Otherwise, additional candidates will be released until the desired level of stability is attained.

    Download Mozilla FireFox 3 RC1 ini di http://www.mozilla.com/en-US/firefox/all-rc.html tersedia untuk platform Windows, Mac, dan Linux.

    yah, gak ada salahnya mencicipi dulu versi terbaru dari web browser terbaik ini, sambil nunggu FireFox 3 Final version yang mungkin baru keluar Juni hehe.. :D

    This Firefox 3 Release Candidate is a preview release of Mozilla’s next generation Firefox browser and is being made available for testing purposes only.

    Bahan bacaan lain: Full review dari Firefox3 RC1, Release Notes FF3, What’s New in Firefox 3

    Efek Desktop Keren Untuk Windows


    Dibandingkan Linux atau Mac, Windows XP rasanya kurang eye catching, tapi gimana yah gak mau pake Vista orang cuman mau ngubah tampilan doang :P. Tenang saudara-saudara 8) setelah blog ini berhibernasi hampir sebulan dengan postingan tidak bermutu, kali ini saya sediakan software yang keren untuk windows:

    1. DeskSpace
    Bagi yang familiar dengan dunia linux, mungkin tidak asing dengan desktop yang banyak. Nah, software yang namanya DeskSpace ini menyediakan 6 virtual desktop yang bisa dipakai untuk membuka aplikasi yang berbeda, prinsipnya sebenarnya memperluas area kerja. Kerennya yaitu switch desktopnya pake animasi 3D cube effect, wow efek 3D di Windows XP :

    oh iya, jangan tertipu penampilan desktop saya yang mirip Mac, ini bener-bener Windows XP lho ;) cuman dipermak aja skinnya ama ditambahin dock (emang gila ngehack desktop ini).

    lihat artikel ini deh :D

    2. TopDesk
    Software yang ini kloning efek Flip3D Aero-nya Vista dan efek Expose-nya Mac. keren ini buat ngegaya waktu pindah-pindah aplikasi. orang di sebelah nanya: lho ini windows apa?

    efek Flip3D di Windows XP :D :

    efek Expose di Windows XP :D :

    Sayangnya, keduanya tidak freeware tapi bisa dicoba trialnya di situsnya: DeskSpace, TopDesk, Saya sih kebetulan aja kemaren ketemu yang fullversionnya (bukan trialnya) di ftp://167.205… :D tapi klo mau yg legal ada freewarenya DeskSpace namanya yodm3d, silakan lah googling.

    Beberapa software buat desktop keren lainnya:

    RK Launcher iVista Leopard, ini software bukan sembarang dock tapi mirip seperti docknya Mac OS X 10.5, udah ada fitur stacknya:

    Y’z Shadow, efek bayangan di window (seperti Vista) dan efek transparansi di menu

    Rainlendar, Yahoo! Widget, Google Sidebar, dll.. keren ni buat ngisi desktop dengan aplikasi (pengganti dashboardnya Mac/sidebarnya Vista)

    Oh iya, saya TIDAK menyarankan software-software ini diinstall di komputer KALAU resource tidak mencukupi/miskin RAM, bakalan ngelag lah 8)

    Akhirul kalam, berdasarkan subjektifitas saya, efek desktop terkeren itu tetep Linux+Compiz.. ngiler lah liatnya :D hehe.. Desktopnya Mac nan menawan aja gak sekeren itu, apalagi Aeronya Windows Vista (hardware reqnya aja tuh gede) … :D eh tapi ini subjektif loh ya ;) .. sayangnya si SiS ini bandel banget arggh gak bisa nyobain compiz fusion di Lappie!

    Blogged with Flock

    FlashPaper: Convert Office ke SWF


    Mumpung kuliah masih belum sibuk, saya iseng nyoba software yang mungkin bisa memberi nilai tambah pada kemampuan Flash. Dan tersebutlah sebuah software bernama FlashPaper. Wow, ini tool yang sangat bermanfaat bagi para Flasher. Dia berguna untuk mengkonversi dokumen Office (seperti Word, Excel, atau PowerPoint) menjadi sebuah SWF tersendiri.

    Tentunya banyak keuntungan yang kita dapat dengan mengkonversi dokumen berupa office menjadi sebuah file SWF. Salah satunya yaitu kita dapat mengembed dokumen dalam Flash yang akan didistribusikan kepada user, sehingga tanpa user perlu Office dan tanpa user perlu meninggalkan interface kita, mereka bisa browse bebas di dalamnya. Begitu pula jika lewat web, user tidak perlu meninggalkan halaman web di browsernya hanya untuk melihat dokumen (so.. gak perlu save as kan). Selain itu, (katanya) umumnya file berupa SWF akan lebih kecil filesizenya dibanding dokumen aslinya.. Continue reading “FlashPaper: Convert Office ke SWF”

    Kumpulan Windows Freeware #1


    Halaman ini saya sediakan bagi para pecinta software gratisan.. meskipun gratisan, kualitasnya tidak kalah dengan software berbayar, beberapa diantaranya bahkan jauh lebih baik… atau setidaknya ya alternatif saja lah. Dan karena ini hanya pilihan Saya, jadi semua software yang ada di list ini bukan berarti yang terbaik untuk Anda hehehe… Continue reading “Kumpulan Windows Freeware #1”