Android使用MediaRecorder录音,方法简单,可参考:http://gundumw100.iteye.com/blog/1873803,但是这种方法不能对音频进行处理,如果想对音频进行处理,建议使用AudioRecord来录音!
这里介绍使用AudioRecord录音,实现录音和WAV格式音频的封装。
效果图如下:
具体代码如下:
package com.Javen;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import android.app.Activity;
import android.media.AudioFormat;
import android.media.AudioRecord;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnPreparedListener;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class AudioRecordActivity extends Activity {
private static final String TAG = "AudioRecordActivity";
private Button startButton, stopButton, playButton;
private int bufferSizeInBytes = 0;//缓冲区大小
//音频获取来源
private int audioSource = MediaRecorder.AudioSource.MIC;
//设置音频的采样率,44100是目前的标准,但是某些设备仍然支持22050,16000,11025
private static int sampleRateInHz = 44100;
//设置音频的录制声道,CHANNEL_IN_STEREO为双声道,CHANNEL_CONFIGURATION_MONO为单声道
private static int channelConfig = AudioFormat.CHANNEL_IN_STEREO;
//设置音频数据格式:PCM 16位每个样本,保证设备支持。PCM 8位每个样本,不一定能得到设备的支持。
private static int audioFormat = AudioFormat.ENCODING_PCM_16BIT;
//AudioName裸音频数据文件
private static final String AudioName = "/sdcard/love.raw";
//NewAudioName可播放的音频文件
private static final String NewAudioName = "/sdcard/new.wav";
private AudioRecord audioRecord;
//播放音频
private MediaPlayer mediaPlayer;
private boolean isRecord = false;//设置录制状态
@Override
public void on