Tutorial Android Play Sound di Android

Tutorial android kali ini akan membahasa Belajar Play Sound di android. Pada Android juga punya kelebihan dalam hal memainkan suara. Untuk memainkan suara diandroid sudah disediakan library yang namanya MediaPlayer dengan library ini kita dengan mudah memainkan sebuah file suara. Misalnya saja file mp3.

Kalau kita dapat menguasai cara memainkan suara di android, kita selangkah didepan untuk membuat aplikasi android yang didalamnya ada suaranya.

Dimarket banyak aplikasi yang menggunakan suara. Terutama untuk Aplikasi atau game untuk anak-anak. Misalnya aplikasi mengenal buah, mengenal huruf, mengenal  angka. Biasanya konsep kerjanya ada gambar dan apabila gambarnya kita sentuh akan mengeluarkan suara.

Pada kesempatan kali ini kita akan membuat aplikasi mengenal Suara Binatang. Agar tidak direpotkan dengan persiapan gambar. Kita gunakan button untuk memilih suara binatang yang akan kita mainkan.

Suara bianatang yang ada aplikasi ini adalah Bird (Burung), Frog (katak) dan Cat (Kucing). Untuk itu kita perlu menyiapkan file mp3 suara binatang tersebut. Untuk suara-suara bianatangnya bisa download di http://simplythebest.net/sounds/MP3/sound_effects_MP3/animals_mp3.html

Setelah semua siap mari kita melangkah bagian pemrogramannya.

1. Buka senjata kita untuk develop android yaitu eclipse, kemudian buat new project  dengan nama BelajarAudio

Pada saat project pertama kali dibuat ada 3 file penting yang langsung dibuat, yaitu

  • main.xml
  • string.xml
  • PlayAudio.java

2. edit file main.xml, isi dengan kode berikut

<?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:layout_width="fill_parent"
		android:layout_height="wrap_content" android:text="@string/hello" />
	<Button android:layout_width="fill_parent"
		android:layout_height="wrap_content" android:id="@+id/bird"
		android:text="Bird"></Button>
	<Button android:layout_width="fill_parent"
		android:layout_height="wrap_content" android:id="@+id/frog"
		android:text="Frog"></Button>
	<Button android:layout_width="fill_parent"
	android:layout_height="wrap_content" android:id="@+id/cat"
	android:text="Cat"></Button>

</LinearLayout>

Pada main.xml ini kita membuat 3 buah button yaitu bird, frog dan cat nantinya apabila button ini ditekan akan memainkan suara.

3. edit file string.xml, isi dengan kode berikut

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Press Button to Play Animal Sound!</string>
    <string name="app_name">BelajarAudio</string>
</resources>

4. pada directory res buat directory baru dengan nama raw
kemudian letakan file-file suara yang telah kita siapakan pada directory tersebut.

Disini terlihat kita sudah meletakkan 3 file suara yaitu bird.mp3 , cat.mp3 dan frogs.mp3

5. Sekarang kita ke otak dari apalikasi ini, edit file PlayAudio.java, isikan dengan kode berikut

package com.agus.audio;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class PlayAudio extends Activity {

	private static final String isPlaying = "Media is Playing";

	private MediaPlayer player;
	private Button birdButton;
	private Button frogButton;
	private Button catButton;

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		// Get the button from the view
		birdButton = (Button) this.findViewById(R.id.bird);
		birdButton.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				playSound(1);

			}
        });
		frogButton = (Button) this.findViewById(R.id.frog);
		frogButton.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				playSound(2);

			}
        });
		catButton = (Button) this.findViewById(R.id.cat);
		catButton.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				playSound(3);

			}
        });

	}

	@Override
	public void onPause() {
		try{
		super.onPause();
		player.pause();
		}catch (Exception e){

		}
	}

	private void playSound(int arg){
		try{
			if (player.isPlaying()) {
				player.stop();
				player.release();
			}
		}catch(Exception e){
			Toast.makeText(this, " Masuk Exception", Toast.LENGTH_LONG).show();
		}
		if (arg == 1){

			Toast.makeText(this, isPlaying+" Bird", Toast.LENGTH_LONG).show();
			player = MediaPlayer.create(this, R.raw.bird);

		}else if (arg==2){
			Toast.makeText(this, isPlaying+" Frogs", Toast.LENGTH_LONG).show();
			player = MediaPlayer.create(this, R.raw.frogs);
		}else if (arg==3){
			Toast.makeText(this, isPlaying+" Cat", Toast.LENGTH_LONG).show();
			player = MediaPlayer.create(this, R.raw.cat);
		}
		player.setLooping(false); // Set looping
		player.start();
	}

}

Disini telihat kita menggunakan library MediaPlayer untuk memainkan suara.
Beberapa method dari MediaPlayer yang kita gunakan dalam aplikasi ini

Method Keterangan
create Untuk mendaftarkan file suara yang ingin dimainkan
start Untuk memulai memainkan file suara
stop Untuk menghentikan file suara
setLooping Menentukan apakah berulang atau tidak
pause Untuk mempause file suara yang sedang dimainkan
isPlaying Untuk mengetahui media player sedang memainkan file suara atu tidak

Bagian utama yang memainkan file suara ada pada method playSound yang akan dipanggil
ketika user menekan salah satu button, disini akan dicek butom mana yang ditekan sehingga
file suara yang dimainkan sesuai dengan button yang ditekan.
Coba perhatikan pada bagian awal method playSound

		try{
			if (player.isPlaying()) {
				player.stop();
				player.release();
			}
		}catch(Exception e){
			Toast.makeText(this, " Masuk Exception", Toast.LENGTH_LONG).show();
		}

Disini kita memasang sebuah penanganan exception. Karena kalau kita tidak buat penanganannya dapat menyebabkan error sehingga aplikasi akan “Force to Close”, yang masuk kedalam exception ini hanya pada saat pertama kali kita menekan salah satu button. Setelah itu tidak akan pernah masuk ke exception ini.

6. Sekarang mari kita jalankan programnya.

Terlihat 3 Buah button, tekan button Bird maka akan terdengar suara burung.

Tekan button Frog akan terdengar suara katak, tekan  button Cat akan terdengar suara kucing.

Nah mudahkan membuat aplikasi yang memainkan suara diandroid. Tapi jangan berpuas diri karena kalau aplikasinya hanya seperti ini kurang gregetnya. untuk itu cobalah buat yang menggunakan Gambar yang apabila Gambar diklik akan mengeluarkan suara. Jadi Anak-anak dapat lebih bisa menghafalnya.

Jika baru mulai belajar android dianjurkan untuk membaca tutorial

 Aplikasi Android Sederhana - Menghitung Luas Persegi Panjang

Semoga bermanfaat

Salam Hangat

Agus Haryanto

sumber:

http://developer.android.com

91 comments to Tutorial Android Play Sound di Android

  • rahmi

    mas kalau buttonnya satu aja dan setiap diklik textnya gantiganti bird, frog cat gimana mas please

  • Agus Haryanto

    @rahmi, simple saja, masukkan bird,frog dll itu kedalam array. nah tiap klik button dia nampilin isi array selanjutnya. coba pahami dulu konsep array dijava. kalau sudah paham akan mudah untuk memenuhi kebuthan ini

  • lilac

    mas.. kalo tombol2nya mau dibanyakin ke bawah, terus windownya bisa vertical scroll gimana yah?

  • Agus Haryanto

    @lilac, coba pelajari scrollview

  • wawan purwanto

    padahal sudah d sama dengan tutorial nya om agus tapi pas di RUN malah ERORR terus . .

  • mas, kalau play soundnya dari file yang berada di memori SDCard bagaimana mas? trus apakah bisa kita bikin dinamis, jadi kita bisa menentukan sendiri dimana letak file audio berada. Terimakasih.

  • helmo

    mas kalau mau bikin database tapi dengan merekam suara lalu di simpan bagaimanaya script nya?

  • rizky

    mas saya mau nanyak ni mas..
    bgmn y mas menampilkan suara dan gambar di android dalam bahasa inggris

    terima kasih

  • helmo

    mas kalau mau bikin button tp kalu di klik ada suaranya gimana ya?

  • koko loco

    mas,klo misalnya mw d buat multi touch gmn y ?
    misalnya klo qt tken 2 button bersamaan,kdua soundya mwbunyi mass,,,

  • desi

    mas,.. kalo mw buat play audio dan buat button panggil activity dalam toast bisa?

  • desi

    kalo bisa,.. gimana caranya,.

  • Agus Haryanto

    @desy, jangan pakai toast pakai dialog saja

  • rizal

    bagaimana cara memainkan audio ketika item tertentu yang ada list view diklik ??

  • Rizki Aprilia

    @Sai : mas model yg seperti ini udah bisa? “ane mw munculn suara brdsarkan gallery yg d liat, misal kyk tutorial agan yg gallery buah, jadi klo pas liat gbrr buah apel muncul suara “ini adalah apel atau apalah”, gmna y tuh kira2?????”
    bleh minta turtorial na donk.. 🙂

  • Mas ikutan comment ni, supaya suara muncul saat start up di android itu bagaimana mas caranya? mohon bantuannya mas…

    Terimakasih

  • trias

    mas kalau program untuk tes suara misal kalau tes menyanyi atw semacamnya trus ada nilainya yang keluar, itu bsa gak ya?

  • reandra

    kalo menggabungkan suara jadi satu gimana mas??

  • Rino

    Mas kalau buat soundrecorder gmn?

  • yogi

    mas ada gak tutorial android untuk record suara ?

  • walimun

    mas kok di eclipse saya di playaudio.javanya bird, frogs, dan catnya tidak tidak terdeteksi padahal saya udah msukin file mp3nya di raw.baris 27,37,47,82,84 dan 86
    mohon pencerahan

  • walimun

    mas kok di eclipse saya di playaudio.javanya bird, frogs, dan catnya tidak tidak terdeteksi padahal saya udah msukin file mp3nya di raw.baris 27,37,47,82,86 dan 89 mksudnya…
    mohon pencerahan

  • Ningsih

    mas kalo misal audionya itu dibuat backsong di quiz, gitu gmna scriptnya?

  • Agus Haryanto

    @Ningsih, Pertanyaan yang bagus insya Allah saya akan coba tulis tentang ini

  • andry boy

    mas caranya memasukan media file swf (flash) bagaimana?

  • mas permisi mau nanya , saya sudah mengikuti tutorial di atas tp ada problem kayak gini mas “[I18N] Hardcoded string “Cat”, should use @string resource fragment_main.xml”

    saya udah coba bikin filed type cat di R.java sesuai petunuk eroor dari eclipse tp ttp gag bisa di run mas.
    tolong solusinya mas .. buat tugas ni

  • faisal

    mas mau tanya nih… misalkan saya punya file suara i, k, a, n. nah untuk play keempat file dalam satu button itu script nya bagai mana mas… jadi pas di tekan bakal play keempat suara itu berurutan dari i sampai a seperti mengeja… mohon solusi nya mas…

  • david

    mas mau tanya kok source code di eclipse nya nggak mau mencari lagu nya mas
    terima kasih

  • Raiz Karman

    Mas boleh minta file projectnya gak untuk di pelajari.. Makasih

  • dayoen

    mas saya sudah nyoba dan utek2 smua…
    sy pake eclipse yg baru, muncul error disini

    player = MediaPlayer.create(this, R.raw.bird);
    player = MediaPlayer.create(this, R.raw.frogs);
    player = MediaPlayer.create(this, R.raw.cat);

    pesan erronya:
    ——————————————
    Multiple markers at this line
    – raw cannot be resolved or is not
    a field
    – frogs cannot be resolved or is
    not a field
    ——————————————

    padahal sudah kasi file cat.mp3
    dan ketika saya membuat field di R.java untuk raw (public static Object raw;)
    masih muncul error :

    “raw cannot be resolved or is not a field”

    tolong mas bgmn solusinya…terima kasih

  • Adhitya Ramadhan

    Maaf mas, mau tanya nih.
    Klo gabungin backsound musik + button play audio gmna yaa ?
    jadi pas kita play audio , backsound nya berhenti.
    tolong pencerahannya mas, makasih.

  • mas mau nanya, kalo kita punya seratus suara, kia pilih salah satu suara, baru di play dari tombol mainkan, itu gmn caranya?

  • klo musiknya pengen jalan truz gimana ya ??

  • astika

    Mas jika ditambah dengan gambar bisa ?

  • Agus Haryanto

    @astika. bisa

  • David

    mas gimana caranya menambahkan tombol suara tapi didalam item listview
    terimakasih

  • dian

    mass, saya ko id buttonnya ko ga mau ke baca gmn ya ?

  • andi

    Mas gimana caranya kalo misalnya ada gambar hewan1 kambing dan hewan2 kucing, jadi kalo mau ke hewan2 dari hewan1 anak yg mainkannya itu harus nyebutin nama hewannya dulu baru bisa ke hewan2?

  • Hendy

    kak, aku mau tanya aku sudah buat code biar musicnya mati. codenya sudah sama persis, tapi kok tidak mau mati ya. mohon bantuannya ya. terima kasih sebelumnya.

  • wafiqzen

    mas agus, kalau dikasih folder masing-masing. seperti folder hewan, folder buah, dan sebagainya. dalam folder tersebut ada nama-namanya suara sesuai nama foldernya. contoh di folder hewan nanti diklik dan muncul nama-nama hewan, terus klik salah satu hewan nanti muncul suaranya

  • lukas

    Mas, kalau supaya ketika buttonnya diklik keluar suara sekaligus berpindah halaman bagaimana ya?\
    Terimakasih

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>