Jumat, 15 April 2011

APLIKASI MULTIMEDIA MUSIC PLAYER MENGGUNAKAN VISUAL BASIC 2005

Secara umum multimedia dapat diartikan sebagai kombinasi antara tiga elemen, elemen tersebut berupa suara, gambar dan text, atau kombinasi sedikitnya dua elemen dari data media dapat berupa audio, animasi, video, teks, grafik dan gambar. Jika dihubungkan dengan penyajian komputer, multimedia adalah penggunaan komputer untuk menyajikan dan menggabungkan teks, suara, gambar, animasi dan video dengan alat bantu ([tool]) dan koneksi ([link]) sehingga pengguna dapat ber-([navigasi]), berinteraksi, berkarya dan berkomunikasi.
Aplikasi multimedia merupakan aplikasi yang digunakan untuk menjalankan multimedia. Contoh aplikasi multimedia yang dikenal orang banyak adalah aplikasi audio winamp digunakan untuk menjalankan audio MP3 maupun MP4, contoh lain adalah windows media player yang digunakan untuk menjalankan DVD, dvd ini merupakan multimedia gabungan antara suara, video dan text.
Aplikasi pada tulisan ini adalah aplikasi audio untuk memutar musik mp3 yang berasal dari folder simpanan dari drive komputer. Musik dapat di pause dan di stop, aplikasi ini juga dapat mengatur volume serta mematikan suara serta dapat mengulang atau replay.
Aplikasi ini merupakan implementasi dari fungsi mciSendString. Fungsi ini sering disebut Windows API (Application Programming Interface), yaitu fungsi yang berguna untuk menjalankan file-file multimedia pada windows. Tahap awal buat suatu solution bernama music tool dan buat satu file kelas yang bernama cls Audio. Cls Audio tersebut berisi enam region kode, atau enam kode utama, berikut adalah enam region kode tersebut :
1. Deklarasi variabel dan fungsi windows API, berisi kode-kode deklarasi variabel global dalam kelas dan deklarasi penggunaan fungsi windows API dari file library serta deklarasi penggunaan kontrol timer dalam kelas.
2. Event dari kelas, berisi kode-kode pembentukan event-event dari object kelas kita, yaitu event playing dan kesalahan.
3. Tombol, berisi kode-kode fungsi public class seperti Play audio, stop audio, dan resume audio.
4. Info durasi dan posisi, berisi kode-kode untuk informasi public tentang berapa lama suatu music (audio) dijalankan dan bagaimana informasi tersebut ditampilkan.
5. Volume Audio, berisi kode-kode untuk mengatur volume audio speaker dan mematikan speaker

Subclass yang pertama adalah deklarasi variabel. Subclass ini dideklarasikan berbagai variabel, termasuk dekalarasi penggunaan windows API mciSendString, fungsi ini hanya digunakan dalam kelas ini saja. Gunanya untuk mengirim perintah pada device audio untuk menjalankan dan mengelola file audio tertentu. Variabel selanjutnya adalah variabel _filename secara lokal dan general. Fungsi variabel ini untuk menampung data alamat file audio yang dijalankan dan lain-lain.
Subclass yang kedua adalah subclass event, subclass ini untuk mengeset adanya event dari kelas, maka digunakan public event diikuti nama event seperti playing, berhenti dan event kesalahan untuk membangkitkan pesan jika terjadi kesalahan. Penggunaan event tersebut sama seperti event click dalam kontrol button.
Kemudian di dalam Subclass tombol terdapat empat buah prosedur pubic yang dapat diakses dari luar file, yaitu file audiom stop audio, pause audioa dan sub close audio. Keempat prosedur in menggunakan fungsi dari windows API yaitu mciSendString. Untuk menjalankan fungsi tersebut dimasukkan perintah-perintah tertentu ke dalam nya seperti “pause song” dan “play song”. Jadi tidak asal memberi perintah.
Subclass info durasi untuk memberikan informasi waktu jalannya file audio. Subclass info durasi berisi beberapa properti-properti yang berhubungan tentang durasi seperti info jumlah lagu yang sudah dimainkan dan info total waktu lagu keseluruhan.
Subclass volume audio dibuat untuk mengatur besarnya tingkat suara yang akan diperdengarkan. Subclass ini terdiri atas beberapa properti seperi properti volumelabel yang berguna untuk mendapatkan tingkat volume dan mengeset volume lagu. Tingkat volume dimasukkan ke dalam variabel TheLevel dari hasil perintah pada objek mciSendString, sedangkan nilai untuk mengubah tingkat volume dimasukkan dalam variabel Value lalu variabel tersebut digunakan dalam perintah mciSendString selanjutnya. Properti muteSoundOutput digunakan untuk mematikan suara. Jika nilai true dimasukkan maka perintah untuk mematikan suara akan dijalankan. Properti lain digunakan untuk mematikan suara audio kanan, atau mematikan audio sebelah kiri serta mengatur volume keduanya.
Subclass lain-lain adalah kode-kode yang tidak dapat dimasukkan ke dalam kelompok diatas sehingga di buat dalam satu blok subclass. Subclass in berisi prosedur prosedur seperti seperti prosedur filename yangberguna untuk mendapatkan nama file audio yang sedang dijalankan. Prosedur AturKecepatan berguna untuk mengatur kecepatan audio dijalankan. Serta prosedur pengaturan kelas yaitu prosedur destruktor untuk menghancurkan objek kelas jika selesai digunakan. Tujuannya untuk membersihkan objek mciSendString.
Selanjutnya untuk mengatur form untuk membentuk interface aplikasi. File ini bernama frmMusik. Kode-kode yang dimasukkan dalam form in terdiri atas 8 region atau subclass, yaitu deklarasi variabel yang berisi deklarasi variabel dan objek baru. MenuFileList yang berhubungan dengan penginputan nilai ke dalam listbox file, yaitu 1stFiles. Tombol yang berhubungan dengan tombol Play, Stop, dan Pause. Checkbox Mute yang berhubungan dengan pengaturan mute oleh beberapa checkbox. TrackBar yang berhubungan dengan trackBar volume perbandingan volume antara kiri dan kanan serta posisi lagu. Notify Icon yang berhubungan dengan pengaksesan ikon program in di systray, dan lain-lain.

Sebagian source code :

Public Class clsAudio
#Region "Deklarasi variabel dan fungsi Windows API"
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Integer, ByVal hwndCallback As Integer) As Integer
Private _Filename As String = Nothing
Private _volLevel As Integer = Nothing
Private _muteOutput As Boolean = False
Private _rChanValue As Boolean = False
Private _lChanValue As Boolean = False
Private _rChanVol As Integer = Nothing
Private _lChanVol As Integer = Nothing
Private _playSpeed As Integer = Nothing
Private WithEvents waktu As New Timer
#End Region
#Region "Event dari Kelas"
Public Event Playing()
Public Event Berhenti()
Public Event Kesalahan(ByVal info As String)
#End Region
#Region "Tombol"
Public Sub PlayAudio()
Try
mciSendString("close song", 0, 0, 0)
mciSendString("open " & filename & " alias song", 0, 0, 0)
mciSendString("play song", 0, 0, 0)
waktu.Enabled = True
Catch exc As Exception
RaiseEvent Kesalahan(exc.Message)
End Try
End Sub

Public Sub StopAudio()
Try
mciSendString("stop song", 0, 0, 0)
waktu.Enabled = False
Catch exc As Exception
RaiseEvent Kesalahan(exc.Message)
End Try
End Sub

Public Sub PauseAudio()
Try
mciSendString("pause song", 0, 0, 0)
waktu.Enabled = False
Catch exc As Exception
RaiseEvent Kesalahan(exc.Message)
End Try
End Sub

Public Sub ResumeAudio()
Try
mciSendString("resume song", 0, 0, 0)
waktu.Enabled = True