Pada artikel yang saya tulis sebelumnya mengenai Background Audio untuk Aplikasi Android, penulis telah menjelaskan bagaimana membuat sebuah aplikasi atau game disertai selingan background musik. Ada beberapa teman yang menanyakan bagaimana caranya memberi tombol on/off untuk mematikan maupun menghidupkan background Audio di aplikasi Android tersebut.
Harap ikuti tutorial sebelumnya disini, untuk melanjutkan implementasi Audio Background ini.
Pemberian background audio memang cukup mudah, penambahan tombol on/off pun juga demikian. Kita bisa memanfaatkan sebuah Toggle Button sebagai view dan kontrol audio background kita nantinya. Jika pembaca telah mencoba tutorial sebelumnya, dan berhasil mengaplikasikan audio tersebut, silahkan ikuti tutorial berikut untuk menambahkan toggle button dan fungsi on/off-nya :
Edit file activity_main.xml
Pertama, di Eclipse masuklah ke dalam folder /res/layout dan buka activity_main.xml. Sekali lagi, file ini merupakan main view yang dipanggil kedalam MainActivity.java. Silahkan edit file tersebut sesuai script yang saya tulis ini :
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <!-- Menambah Toggle Button di tengah View --> <ToggleButton android:id="@+id/toggleSound" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:onClick="onToggleClicked" android:textOn="Hidupkan Musik" android:textOff="Matikan Musik" android:textColor="#222" /> </RelativeLayout>
Berikut adalah sedikit penjelasan mengenai script XML di atas :
- untuk menambah toggleButton, pembaca cukup menulis tag <ToggleButton /> beserta instrumen atau detail tag tersebut.
- ToggleButton akan kita definisikan di MainActivity.java nanti melalu bagian android:onClick=”onToggleClicked”
- ketika toggle mati, maka teks akan berubah sesuai setting tag android:textOn dan textOff.
Edit file MainActivity.java
Jika anda run, sekarang pada tampilan aplikasi ini akan tetap membunyikan background sound namun toggle belum berfungsi. Nah, kita akan sedikit melakukan modifikasi pada MainActivity.java yang telah kita tulis pada tutorial audio background sebelum ini. Berikut adalah scriptnya :
package com.mkhuda.audiobackground; import android.media.MediaPlayer; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.ToggleButton; public class MainActivity extends Activity { //Mendefinisikan MediaPlayer sebagai audioBackground MediaPlayer audioBackground; /*Variabel untuk ToggleButton kita beri nama dengan myToggle*/ ToggleButton myToggle; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //Memberi definisi di onCreate untuk toggle myToggle = (ToggleButton) findViewById(R.id.toggleSound); //Memanggil file my_sound pada folder raw audioBackground = MediaPlayer.create(this, R.raw.my_sound); //Set looping ke true untuk mengulang audio jika telah selesai audioBackground.setLooping(true); //Set volume audio agar berbunyi audioBackground.setVolume(1,1); //Memulai audio audioBackground.start(); } /*Mendefinisikan fungsi onToggleClicked dengan pengkondisian standar if/else*/ public void onToggleClicked(View view) { boolean on = ((ToggleButton) view).isChecked(); if (on) { /*Mematikan suara audio*/ audioBackground.setVolume(0, 0); } else { /*Menghidupkan kembali audio background*/ audioBackground.setVolume(1, 1); } } @Override public void onBackPressed() { // TODO Auto-generated method stub audioBackground.stop(); MainActivity.this.finish(); } }
Penjelasan script :
- Pertama, di dalam class kita mendefinisikan terlebih dahulu ToggleButton yang telah kita buat di XML (baris 16)
- toggleButton kita definisikan lagi di dalam onCreate (baris 24)
- Merekayasa fungsi onToggleClicked agar toggle untuk mematikan dan menghidupkan audio berfungsi sebagaimana mestinya (baris 39 – 49)
- Menambah fungsi void onBackPressed, dimaksudkan agar aplikasi dan audio benar-benar mati ketika user memencet back button device Android (baris 51 – 56)
Nah, silahkan debug / run script yang telah Anda buat diatas. Pastikan fungsi on/off pada toggleButton dan juga backButton berfungsi seperti apa yang kita inginkan. Berikut adalah screenshot hasil aplikasi :
Sekian tutorial dari saya, jika ada pertanyaan silahkan tulis komentar di bawah. Dan saya harap pembaca juga belajar untuk mengembangkan dan juga memahami detail pemrograman XML maupun Java pada tutorial kali ini.
kalau pake background gambar gimana mas ??
mas, saya sudah ikutin tutorilanya, pas saya matikan musiknya, dia mati..
tapi pas saya idupin lagi, dia gak jalan lagunya..
kenapa yah??
mohon bantuannya..
mas kalau audio’a hanya didup di menu saja .. dan audio’a mati d menu yg lain bagai mna cara’a mas?
Sangat bisa mas. Source code tutorial yang saya tulis itu sebenarnya bisa diimplementasi hanya untuk 1 activity, jika mas aziz berpindah ke activity lain maka sound akan berhenti.
Jangan lupa untuk melakukan stop streaming sound disaat akan berpindah ke activity lain.
Thanks
mas saya sudah mencoba, tetapi saat kembali ke activity utama’a audio background’a malah mati tidak play kembali.
tolong dong pencerahannya?
Gimana scriptnya mas ?
mas bagaimana membuat musiknya berhenti saat aplikasi nya ditutup?, terimakasih
Mas ada contoh aplikasi gitar gak?