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

  • kalo cara menampilkan gambarnya gimana mas kayaknya belum ada tutorialnya gimana dhong ?

  • agungp

    wah request ane akhirnya dibikin juga

    makasi gan 😀

  • sheila

    mas agus, minta contohnya e learning dong mas
    buat tugas
    makasiih yaa
    ^-^

  • waduh ko masih ada yang error yah padahal semuanya sudah diikutin,, kenapa yah mas ?

  • Agus Haryanto

    @renaldo, errornya apayah, lalu apakah file *.mp3 sudah diletakkan didirectory raw

  • Agus Haryanto

    @sheila, elearning, bisa dijelaskan konsep elearningnya.

  • civer

    Usul mas gimana kalo aplikasi di atas di tambahin button buat search file mp3 nya gitu

  • nugi

    mas saya udah coba, tpi error d.sni :
    The method onClick(View) of type new View.OnClickListener(){} must override a superclass method PlayAudio.java
    knpa ya?? mksud erornya apa.. mohon bimbingannya..

  • Tonny

    error disini mas.
    public void onClick(View arg0) {
    // TODO Auto-generated method stub
    playSound(1);

    trus muncul ini
    Multiple markers at this line
    – implements android.view.View.OnClickListener.onClick
    – The method onClick(View) of type new View.OnClickListener(){} must override a superclass
    method

  • Tonny

    wah, sudah bisa mas, gausah pake @override lagi . hehe.

  • Ikhsan

    Mas, klo misale coding buat quiz gitu tp pemunculan soalnya yang random gimana ya??, mohon bantuannya mas

  • GR-47

    Mas, klo misalkan suaranya di taroh di folder lain bisa ngk? Tapi masih dalam satu folder src.

  • GR-47

    Maksud saya res, bukan src. Ralat ya… hehehe…

  • oos

    mantap gan agus tutorialnya.
    thanks

  • febri

    mas..
    kalo lita ingin buat alarm gmn??
    mohon bantuannya y..

  • freak

    Mas, bikinin dong tutorial supaya pas klik gambar bisa langsung play sound-nya :p

  • dika

    mas kok masih error yah perintahnya “raw cannot be resolved or is not a field” mohon saranya thx….

  • mas kalo mau cari suara-suara alfabet dimana ya?

  • haji

    makasih mas,,,,

    saya sangat terbantu sekali….
    langsung coba ahhh

  • makasih mas.. kalo saya bikin TUner Gitar di http://omayib.com/?p=669

  • Agus Haryanto

    @sadikin, Kalau yang versi indonesia buat sendiri aja mas, suara mas direkam. atau mau hasil rekaman saya 🙂

  • iya mas gapapa ko rekaman suara mas aja… tapi suaranya yang imut2 ya mas kya anak kecil ….hehehe…

  • Sai

    gan klo file suarany d jdiin array bsa g???

    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?????

    mohon bntuanny y.. 😀

  • Sai

    g jd gan, udah bsa, jgn lupa mmpir k klikti.blogspot.com y.. 😀

  • [D][M][N]

    mas agus
    gmana ya cara naro vidio di project Android??
    mohon pencerahannya

  • Achmad

    mas, mau tanya kalo ngeplay suara berdasarkan filename suaranya gimana yaa?

    terima kasih.

  • isna

    ko aku coba error di

    private MediaPlayer player;

    knp tu pak?

  • isna

    eeeh ga jd..ternyata ada yg kurang..hehe
    tapi kan saya coba 2 button,yang pertama ga bisa,yang kedua bisa..knp ya pak?

  • reza

    mas semuanya udah saya ikutin tapi ada error di import android.view.KeyEvent;
    katanya The import android.view.KeyEvent is never used

  • mas saya newbie pengen banget belajar android, minta tutorial2 dan kebetulan saya pengen membuat enkripsi video yang ditanam di android, kalo boleh minta dong contohnya terima kasih, tutor or ebooknya di tunggu ya mas repplay to email makasih…..

  • nciil

    makasi yaaa mas, tutorialnya sangat berguna

  • Arif

    mas klo mau tambahin pengaturan volume gmn ?

  • Mas kok masih ada yg error yg ini mas

    1. @Override
    2. player = MediaPlayer.create(this, R.raw.cat);(klo ini di R.raw.cat nya)

  • irfan satria

    makasih banyak mas agus…
    sangat bermanfaat

  • alhamdulillah, ketemu site nya mas agus yg bagus-bagus
    kebetulan lagi belajar android,
    mau tanya mas, klo button itu bisa di custom sizenya ga?
    atau memang selalu penuh seukuran layar? 🙂

  • Agus Haryanto

    @alfin, tentu bisa, coba explore lebihjauh tentang property button pada android

  • haris

    mas,, request buat riview cara mudah membuat aplikasi android dengan tema “music media player”.. yang sederhana aja mas… makasihh moga bisa bantu

  • irham

    mas kalau mau membuat array untuk suara gimana script nya ya

  • akhmad

    mas, itu biar bisa pause, trus pas dipencet tombol play lagi ga ngulang dari awal gimana codingnya ya?

  • Mas, saya membuat software Juz ama player, saya mau tanya soal project ini, saya kembangkan dengan suara lain, Saya menggunakan Emulator Android dan ketika saya klik rekamannya terkadang muncul suaranya(normal), nah terkadang tidak muncul suaranya, “Media is Playing”, tetapi tidak ada suaranya, itu kenapa mas, tolong dijawab??

  • Mas Agus , kalau bentuk button nya itu bulat – bulat , apa yang harus di ubah ??? Kebetulan saya ingin membuat interface dan fungsi sebagaimana drum set musik

  • ada error di player = MediaPlayer.create(this, R.raw.bird); katanya R.raw cannot be resolved ,mohon bantuanya karena ini menyangkut tugas PI saya ,terima kasih

  • Laily

    asyikkk.. udah belajar ngembangin n sukses
    makassii makassi 😀

  • Achmad Tharmizi

    mas, kalo kita ambil file soundnya dari database di server kira” bisa atau nggak untuk di masukan ke dalam program. kalo bisa share tutorialnya mas.hehe
    thanks buat tutorial yg ini mas

  • SitiEna

    mas, aku kan buat aplikasi alat musik. ada informasi alat musik itu sama ada suaranya, cara gabungin suaanya gimana yaa ? adakah tutorialnya ? klu bisa kirim imel saya mas sitiena.n@gmail.com terimakasi banyak 🙂

  • mas kalo mau nambahin playsound di gallery buah yang mas buat itu gmna yah?? start dari mananya dulu? saya bingung disetiap gambarnya bagaimana untuk pnambahan playsoundnya mas

  • fitria

    mas untuk tombol pause kan fungsinya untuk berhenti d posisi yang kita mau trz wkt mau d play lagi kenapa musiknya kembali ke awal bukan melanjutkan di posisi musik berhenti tadi????

  • mas agus, saya mw tanya nh, q buat aplikasi alarm lah q masih bingung gmn kasih audio nya (audio default z)? jika punya source / link buat belajar saya mohon di beri tau y mas….
    mohon bantuannya guru…

  • Fikri

    bang agus, R.java nya tidak mw cread (raw)….
    apa manifest.xml perlu di edit juga (di tambahi scipt)?
    mohon di bantu bang..

  • Chacapalapa

    keren,,,,!!!

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>