_record.setAudioSource(MediaRecorder.AudioSource.MIC);
//设置输出文件的格式如3gp、mpeg4等
_record.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
//设置音频编码器,程序中设定音频编码为AMR窄带编码
_record.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
FileName = DateFormat.format("yyyyMMdd_HHmmss", Calendar.getInstance(Locale.CHINA)) + ".m4a";
File destDir = new File(Environment.getExternalStorageDirectory()+"/test/");
if (!destDir.exists()) {
destDir.mkdirs();
}
FilePath = Environment.getExternalStorageDirectory()+"/test/"+ FileName;
_record.setOutputFile(FilePath);
// FilePath = Environment.getExternalStorageDirectory().getAbsolutePath();
// FileName = FilePath + “/myvideo.mp4”;
Log.v("VoiceRecord FileName", FileName);
Log.v("VoiceRecord FilePath", FilePath);
Log.v("startRecord _record", "_record:" + _record);
//准备开始,这就在start前,必须调用
try {
_record.prepare();
} catch (IOException e) {
Log.v("VoiceRecord", " prepare failed");
}
在小米MIX 2S这个机型中会出现start called in an invalid state: 4, 在_record.prepare();这一步就会准备失败