Kita akan membuat aplikasi sederhana untuk memutar file .mp3 melalui sebuah tombol play. Skenarionya, jika tombol play diklik, mp3 akan dimainkan. Pada saat bersamaan tombol play menjadi disable . Namun jika mp3 selesai berputar, baru kemudian tombol play enable kembali. Perhatikan gambar 10.1.

Cara Mengakses Sound Android di Eclipse
Sudah siap ? mari kita mulai!

Gambar 10. 1
1. Jalankan Enclipse, buat Project baru. Isilah parameter seperti berikut
| Project name | playingAudio |
|------------------|---------------------|
| Build Target | Android 2.2 |
| Application name | Memutar file audio |
| Package name | contoh.playingAudio |
| Create Activity | playingAudio |
| Min SDK version | 8 |
2. Dalam folder res, buat folder baru dengan nama drawable. Masukkan gambar play (atau apa saja untuk mewakili icon play) dalam format *.png (gambat 10.2).

Gambar 10. 2 Gambar play.png

Gambar 10. 3
3. Buat folder baru lagi di res, kali ini beri nama raw. Masukkan file mp3 ke dalam folder raw. Latihan ini menggunakan file kautsar.mp3.

Gambar 10. 4
4. Kemudian ketikkan script berikut ini pada main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView android:textSize="15px"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView"
android:text="Memainkan Musik"></TextView>
<ImageButton android:id="@+id/putarMusik"
android:layout_height="wrap_content"
android:adjustViewBounds="false"
android:src="@drawable/play"
android:layout_gravity="center_vertical|center_horizontal"
android:layout_width="fill_parent"></ImageButton>
<TextView android:text=""
android:id="@+id/ket"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:textSize="15px"></TextView>
</LinearLayout>
5. Ketiklah kode playingAudio.java seperti berikut
package contoh.playingAudio;
import java.io.IOException;
import android.app.Activity;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.TextView;
public class playingAudio extends Activity{
ImageButton mainkan;
TextView keterangan;
MediaPlayer mp;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
keterangan=(TextView)findViewById(R.id.ket);
keterangan.setText("Silakan klik tombol play");
mainkan=(ImageButton)findViewById(R.id.putarMusik);
mainkan.setOnClickListener(new OnClickListener(){
public void onClick(View arg0){
mainkan.setEnabled(false);
keterangan.setText("Tombol play tidak aktif");
go();
}
});
}
public void go(){
mp=MediaPlayer.create(playingAudio.this, R.raw.kautsar);
try {
mp.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mp.start();
mp.setOnCompletionListener(new OnCompletionListener(){
public void onCompletion(MediaPlayer arg0){
mainkan.setEnabled(true);
keterangan.setText("Silakan klik tombol play");
}
});
}
}
6. Bila script berantakan, lakukan Format (source > format).
7. Lakukan RUN dan lihat hasilnya.
Penjelasan Program
- Pada layout main.xml, Kita memasukkan 3 widget, yaitu 1. TextView pada baris 7-11 untuk memunculkan tulisan “Memainkan Musik”
- ImageButton pada baris 12-17 untuk membuat button yang didalamnya bisa diberi gambar.
- TextView lagi pada baris 18-23 untuk menampilkan status button aktif atau tidak.
ImageButton mengambil gambar dari folder res/drawable, ditunjukkan pada baris 15. Sudah jelas kan?
Sekarang kita ke activity nya. Agar lebih mudah memahami, saya membuat activity ini menjadi 3 bagian yaitu;
- Baris 12-14 adalah deklarasi objek
- Baris 21-31 adalah sinkronisasi objek terhadap widget di xml sekaligus mengaktifkan ImageButton. Apabila ImageButton diklik, maka method go() dipanggil.
- Baris 33-51 adalah method go(), yang berisi fungsi-fungsi untuk memainkan media player.
Method go() berisi barisan perintah untuk memanggil kelas MediaPlayer. Kelas MediaPlayer bertugas memanggil dan memainkan file audio yang kita simpan di folder raw. Dalam latihan ini, penulis menggunakan file kautsar.mp3. Sebenarnya ada tahapan-tahapan (state diagram) dalam memainkan file audio, namun tidak dijelaskan pada buku ini karena dianggap rumit bagi level pemula. Sehingga penulis menyajikan dalam contoh latihan yang sederhana dan mudah dipahami.
Cara memanggilnya melalui baris 34. Mp adalah object MediaPlayer yang sudah dideklarasikan di awal program. Setelah file mp3 dipanggil, file audio memasuki tahap prepared (mp.prepared()). Pada tahap ini menggunakan try-catch. Trycatch adalah cara java untuk mengeksekusi suatu perintah yang ada didalam try. Jika eksekusi gagal, langsung ditangani oleh perintah yang ada didalam catch.
Setelah memaskui mp.prepared(), kemudian menggunakan mp.start() untuk mulai memainkan mp3. Sampai disini sudah terlihat, begitu ImageButton diclick, file mp3 akan diputar, ImageButton menjadi tidak aktif dan tulisan yang tampil adalah “Tombol play tidak aktif”. Ide berikutnya adalah mengaktifkan kembali ImageButton jika file mp3 sudah selesai diputar. Maka digunakan method setOnCompletionListener().
Untuk mengetahui apakah mp3 selesai diputar atau belum, kita gunakan method onCompletion(). Disinilah kita kembali mengaktifkan imageButton (baris 47) dan mengubah status imageButton menjadi “Silakan Klik tombol play” (baris 48). Dengan demikian, begitu mp3 selesai diputar, maka ImageButton mainkan kembali aktif, dan TextView keterangan kembali menampilkan tulisan “Silakan klik tombol play”.
Sumber
omayib.com