Ghi âmChương trình ghi âm là 1 ứng dụng đặc biệt và hữu ích trên điện thoại di động cho nên hầu hết các thế hệ smartphone hiện tại đều có sẵn chương trình ghi âm.. Vấn đề đặc ra là tron
Trang 1Ghi âm
Chương trình ghi âm là 1 ứng dụng đặc biệt và hữu ích trên điện thoại di động cho nên hầu hết các thế hệ smartphone hiện tại đều có sẵn chương trình ghi âm Vấn đề đặc ra
là trong 1 số ứng dụng riêng của bạn, bạn có thể cần tính năng ghi âm để phối hợp với các tính năng riêng mà bạn đã viết Cho nên trong phần demo này tôi sẽ làm 1 ứng dụng ghi âm riêng lẻ để các bạn có thể tham khảo và xử dụng khi cần
1/ Tạo Project :
Project name: AudioRecord
Build Target: Android 2.3.3
Application name: AudioRecord
Package name: com.dac.AudioRecord
Create Activity: Record
2/ Trong file giao diện main.xml các bạn tạo 4 button như sau:
<?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="Nobilomo"
/>
<Button android:id="@+id/beginBtn" android:text="Begin Recording"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="doClick" />
<Button android:id="@+id/stopBtn" android:text="Stop Recording"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="doClick" />
<Button android:id="@+id/playRecordingBtn"
android:text="Play Recording"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="doClick" />
<Button android:id="@+id/stopPlayingRecordingBtn"
android:text="Stop Playing Recording"
Trang 2android:layout_height="wrap_content"
android:onClick="doClick" />
</LinearLayout>
3/ Và trong file Record.java các bạn code xử lý:
package dac.com.AudioRecord
import java.io.File;
import android.app.Activity;
import android.media.MediaPlayer;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
public class Record extends Activity {
private MediaPlayer mediaPlayer;
private MediaRecorder recorder;
private String OUTPUT_FILE;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
OUTPUT_FILE = Environment.getExternalStorageDirectory() +
"/recordaudio3.3gpp";
}
public void doClick(View view) {
switch(view.getId()) {
case R.id.beginBtn:
try { beginRecording();
} catch (Exception e) { e.printStackTrace();
}
break;
case R.id.stopBtn:
try { stopRecording();
} catch (Exception e) { e.printStackTrace();
}
break;
case R.id.playRecordingBtn:
try { playRecording();
} catch (Exception e) { e.printStackTrace();
}
Trang 3case R.id.stopPlayingRecordingBtn:
try { stopPlayingRecording();
} catch (Exception e) { e.printStackTrace();
}
break; } }
private void beginRecording() throws Exception {
killMediaRecorder();
File outFile = new File(OUTPUT_FILE);
if(outFile.exists()) { outFile.delete();
} recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); recorder.setOutputFile(OUTPUT_FILE);
recorder.prepare();
recorder.start();
}
private void stopRecording() throws Exception {
if (recorder != null) { recorder.stop();
} }
private void killMediaRecorder() {
if (recorder != null) { recorder.release();
} }
private void killMediaPlayer() {
if (mediaPlayer != null) {
try { mediaPlayer.release();
} catch (Exception e) { e.printStackTrace();
} } }
private void playRecording() throws Exception {
killMediaPlayer();
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(OUTPUT_FILE);
mediaPlayer.prepare();
mediaPlayer.start();
}
private void stopPlayingRecording() throws Exception {
if(mediaPlayer != null) {
Trang 4} }
@Override
protected void onDestroy() {
super.onDestroy();
killMediaRecorder();
killMediaPlayer();
}
}
Vậy ta đã code xử lý cho cả 4 button và các hàm tương ứng để xử lý (xử dụng các công cụ hỗ trợ của Android).
Sau đó để chạy được ứng dụng các bạn phải thêm các Permission trong file
AndroidManifest.xml :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.androidbook.media.audiorecord"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name" <activity android:name=".Record"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>
</manifest>
Tiếp theo các bạn debug ứng dụng (có phone thì cắm vào thử không thì deploy lên máy thật để kiểm tra ứng dụng nha các bạn )