MediaRecorder 录音的几个步骤:
1 、创建 MediaRecorder 对象 ( 或者 reset) 处于 idle 状态
2 、通过 setAudioSource 设置音频来源3 、 setOutputFormat 设置输出格式,建议 default
4 、 setAudioEncoder 设置输出编码
5 、设置输出位置 setOutputFile
6 、准备
7 、开始录制
public class MediaRecorderActivity extends AppCompatActivity implements View.OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_media_recorder);
findViewById(R.id.btn_start).setOnClickListener(this);
findViewById(R.id.btn_stop).setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn_start:
start();
break;
case R.id.btn_stop:
stop();
break;
}
}
private MediaRecorder mediaRecorder;
private void start(){
if(null == mediaRecorder){
mediaRecorder = new MediaRecorder();
mediaRecorder.setOnErrorListener(onErrorListener);
}else{
mediaRecorder.reset();
}
//配置音频来源
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
//设置输出格式
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
//音频编码
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
//设置保存位置
mediaRecorder.setOutputFile("/mnt/sdcard/re_"+System.currentTimeMillis()+".mp3");
//准备
try {
mediaRecorder.prepare();
mediaRecorder.start();
} catch (IOException e) {
e.printStackTrace();
}
}
private void stop(){
if(null !=mediaRecorder){
mediaRecorder.stop();
mediaRecorder.release();
mediaRecorder = null;
}
}
private MediaRecorder.OnErrorListener onErrorListener = new MediaRecorder.OnErrorListener() {
@Override
public void onError(MediaRecorder mr, int what, int extra) {
}
};
}
注意添加权限
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
6.0 以上需要动态申请该权限