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
mas kalau buttonnya satu aja dan setiap diklik textnya gantiganti bird, frog cat gimana mas please
@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
mas.. kalo tombol2nya mau dibanyakin ke bawah, terus windownya bisa vertical scroll gimana yah?
@lilac, coba pelajari scrollview
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.
mas kalau mau bikin database tapi dengan merekam suara lalu di simpan bagaimanaya script nya?
mas saya mau nanyak ni mas..
bgmn y mas menampilkan suara dan gambar di android dalam bahasa inggris
terima kasih
mas kalau mau bikin button tp kalu di klik ada suaranya gimana ya?
mas,klo misalnya mw d buat multi touch gmn y ?
misalnya klo qt tken 2 button bersamaan,kdua soundya mwbunyi mass,,,
mas,.. kalo mw buat play audio dan buat button panggil activity dalam toast bisa?
kalo bisa,.. gimana caranya,.
@desy, jangan pakai toast pakai dialog saja
bagaimana cara memainkan audio ketika item tertentu yang ada list view diklik ??
@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
mas kalau program untuk tes suara misal kalau tes menyanyi atw semacamnya trus ada nilainya yang keluar, itu bsa gak ya?
kalo menggabungkan suara jadi satu gimana mas??
Mas kalau buat soundrecorder gmn?
mas ada gak tutorial android untuk record suara ?
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
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
mas kalo misal audionya itu dibuat backsong di quiz, gitu gmna scriptnya?
@Ningsih, Pertanyaan yang bagus insya Allah saya akan coba tulis tentang ini
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
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…
mas mau tanya kok source code di eclipse nya nggak mau mencari lagu nya mas
terima kasih
Mas boleh minta file projectnya gak untuk di pelajari.. Makasih
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
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 ??
Mas jika ditambah dengan gambar bisa ?
@astika. bisa
mas gimana caranya menambahkan tombol suara tapi didalam item listview
terimakasih
mass, saya ko id buttonnya ko ga mau ke baca gmn ya ?
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?
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.
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
Mas, kalau supaya ketika buttonnya diklik keluar suara sekaligus berpindah halaman bagaimana ya?\
Terimakasih