本文主要讲解的是关于Android的录音功能的编程介绍,在Android中提供了一个MediaRecorder类,
在其中我们主要使用一下以下的几个方法实现录音功能:
开启Android的录音功能
MediaRecorder recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_WB);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_WB);
recorder.setOutputFile(PATH_NAME);
recorder.prepare();
recorder.start();
停止Android的录音功能:
recorder.stop();
recorder.reset();
recorder.release();
个人写的一个实例软件如下:
布局文件:
<Button
android:id="@+id/btnStart"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Start"/>
<Button
android:id="@+id/btnStop"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Stop" />
代码中实现如下:
private MediaRecorder mediaRecorder=null;
private OnClickListener onClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnStart:
if (mediaRecorder==null) {
recordStart();
}
break;
case R.id.btnStop:
if (mediaRecorder!=null) {
recordStop();
}
break;
default:
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.btnStart).setOnClickListener(onClickListener);
findViewById(R.id.btnStop).setOnClickListener(onClickListener );
}
/**
* 此方法是开始录制语音信息
*/
public void recordStart() {
File dir=new File(Environment.getExternalStorageDirectory(), "sound");
if (!dir.exists()) {
dir.mkdirs();
}
File file=new File(dir, System.currentTimeMillis()+".amr");
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
mediaRecorder=new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_WB);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_WB);
mediaRecorder.setOutputFile(file.getAbsolutePath());
try {
mediaRecorder.prepare();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
mediaRecorder.start();
}
/**
* 此方法是停止录制语音信息
*/
public void recordStop() {
mediaRecorder.stop();
mediaRecorder.reset();
mediaRecorder.release();
}
在我们最后不要忘了在配置文件中添加相应的使用权限