Tombol On Off Untuk Audio Background Aplikasi Android

Android Audio

Pada artikel yang saya tulis sebelumnya mengenai Background Audio untuk Aplikasi Androidpenulis 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.

Muhammad K Huda: A non exhausted blogger person within fullstack engineer (spicy food), open source religion, self-taught driver and maybe you know or don't like it. Simply says, Hello from Me!
Related Post