Вы находитесь на странице: 1из 4

MULTIMEDIA AUDIO

RECORD AUDIO
Bagian ini membuat aplikasi untuk merekam suara.
Skenarionya, disediakan 4 buah button masing-masing untuk
Start dan Stop rekaman, berikutnya button Play dan Stop
untuk memutar ulang hasil rekaman. Gambar disamping
menampilkan cuplikan aplikasi yang akan kita buat.

Kita mulai dengan membuat project baru.

1. Siapkan project baru

Project name recordAudio


Build Target Android 2.2
Aplication name RecordAudio
Package name Com.rec.audio
Create Activity RecordAudioActivity
Min SDK version 8

2. Tambahkan 2 uses-permission di dalam AndroidManifest.xml

<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

3. Siapkan beberapa string di string-xml

<?xml version="1.0" encoding="utf-8"?>


<resources>
<string name="hello">Hello World, RecordAudioActivity!</string>
<string name="app_name">RecordAudio</string>
<string name="startRecBtn">Start Record</string>
<string name="stopRecBtn">Stop Record</string>
<string name="playBtn">Play</string>
<string name="stopBtn">Stop</string>
</resources>

4. Susun terlebih dahulu layout-nya di main.xml

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
<Button
android:id="@+id/startBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/startRecBtn" />
<Button
android:id="@+id/stopBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/stopRecBtn" />
<Button
android:id="@+id/playBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/playBtn" />
<Button
android:id="@+id/stopPlayBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/stopBtn" />
</LinearLayout>
5. Pada bagian activity, tuliskan code berikut :

package com.rec.audio;

import java.io.File;
import java.io.IOException;

import android.app.Activity;
import android.media.MediaPlayer;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class RecordAudioActivity extends Activity implements OnClickListener {


Button startBtn, stopBtn, playBtn, stopPlayBtn;
private MediaPlayer mp;
private MediaRecorder mr;
private static final String OUTPUT_FILE = "/sdcard/hasil.3gpp";

/** Called when the activity is first created. */


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

startBtn = (Button) findViewById(R.id.startBtn);


stopBtn = (Button) findViewById(R.id.stopBtn);
playBtn = (Button) findViewById(R.id.playBtn);
stopPlayBtn = (Button) findViewById(R.id.stopPlayBtn);

startBtn.setOnClickListener(this);
stopBtn.setOnClickListener(this);
playBtn.setOnClickListener(this);
stopPlayBtn.setOnClickListener(this);
}

@Override
public void onDestroy() {
super.onDestroy();
killMediaRecorder();
killMediaPlayer();
}

public void onClick(View v) {


// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.startBtn:
try {
mulaiRec();
Toast.makeText(getApplicationContext(), "Recording",
Toast.LENGTH_SHORT).show();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Toast.makeText(getApplicationContext(), e.toString(),
Toast.LENGTH_SHORT).show();
}
break;
case R.id.stopBtn:
stopRec();
break;
case R.id.playBtn:
playRec();
break;
case R.id.stopPlayBtn:
stopPlayRec();
break;
}
}

private void stopPlayRec() {


// TODO Auto-generated method stub
if (mp != null) {
mp.stop();
}
}

private void playRec() {


// TODO Auto-generated method stub
killMediaPlayer();
mp = new MediaPlayer();
try {
mp.setDataSource(OUTPUT_FILE);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
mp.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mp.start();

private void stopRec() {


// TODO Auto-generated method stub
if (mr != null) {
mr.stop();
}
}

private void mulaiRec() throws Exception {


killMediaRecorder();
File outFile = new File(OUTPUT_FILE);
if (outFile.exists()) {
outFile.delete();
}
mr = new MediaRecorder();
mr.setAudioSource(MediaRecorder.AudioSource.MIC);
mr.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mr.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mr.setOutputFile(OUTPUT_FILE);
mr.prepare();
mr.start();
}

private void killMediaRecorder() {


// TODO Auto-generated method stub
if (mr != null) {
mr.release();
}
}

private void killMediaPlayer() {


// TODO Auto-generated method stub
if (mp != null) {
mp.release();
}
}
}

PENJELASAN PROGRAM
Hasil rekaman kita simpan kedalam sdcard. Agar aplikasi kita bisa merekam suara dan menyimpan
hasilnya ke dalam sdcard maka harus di tambahkan uses-permission WRITE_EXTERNAL_STORAGE dan
RECORD_AUDIO
Untuk melakukan recording dan memutar ulang activity pada aplikasi ini harus menggunakan kels
MediaPlayer dan MediaRecorder. MediaPlayer adalah kelas untuk memainkan Audio dan Video,
sedangkan MediaRecorder merupakan kelas yang digunakan untuk merekam audio dan video.

Di dalam activity terdapat beberapa method yang perlu diperhatikan, antara lain :

mulaiRec() Berisi serangkaian method dari MediaPlayer untuk memulai merekam dan menulis
ke dalam record

stopRec() Berisi method stop dari MediaPlayer untuk menghentikan proses rekam

playRec() Berisi method dari MediaPlayer untuk mengambil file di sdcard, kemudian
memutarnya

stopPlayRec() Berisi method dari MediaPlayer untuk menghentikan audio yang diputar

killMediaRecorder() Berisi method dari MediaRecorder untuk melepas object yang berhubungan
dengan proses rekaman.

killMediaPlayer() Berisi method dari MediaPlayer untuk melepas object yang berhubungan dengan
proses memutar lagu.

Вам также может понравиться