I try to record the audio, only the audio, and I get this error on android 4.1.2 but not on 4.3:
Here is the code:
private void startRecord(){
on_record = true;
final boolean exists = (new File(Environment.getExternalStorageDirectory() + File.separator + NOTAY)).exists();
if (!exists) {new File(Environment.getExternalStorageDirectory() + File.separator + "Test").mkdirs();}
final boolean existAud = (new File(android.os.Environment.getExternalStorageDirectory() + File.separator + NOTAY + File.separator + "Audio")).exists();
if (!existAud) {new File(Environment.getExternalStorageDirectory() + File.separator + "Test" + File.separator + "Audio").mkdirs();}
final EditText editTitle= (EditText) findViewById(R.id.editTitle);
final String title = editTitle.getText().toString();
final String audioName = getDate(System.currentTimeMillis()).replaceAll(" ", "_");
currentAudioPath = Environment.getExternalStorageDirectory().getAbsolutePath()
+ File.separator
+ "Test"
+ File.separator
+ "Audio"
+ File.separator
+ System.currentTimeMillis() + "-" + audioName + ".3gpp";
if(title.length() == 0)
editTitle.setText(audioName);
Recorder = new MediaRecorder();
Recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
Recorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
Recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
Recorder.setOutputFile(currentAudioPath);
try {
Recorder.prepare();
} catch (IOException e) {
}
Recorder.start();
}
private void saveRecord(){
Recorder.stop();
Recorder.release();
Recorder = null;
on_record = false;
currentAudioPath = NO_AUDIO;
}
And here the logs:
10-24 08:34:02.777: E/MediaRecorder(13491): start called in an invalid state: 4
10-24 08:34:02.777: D/AndroidRuntime(13491): Shutting down VM
10-24 08:34:02.777: W/dalvikvm(13491): threadid=1: thread exiting with uncaught exception (group=0x40e5b440)
10-24 08:34:02.823: E/AndroidRuntime(13491): FATAL EXCEPTION: main
10-24 08:34:02.823: E/AndroidRuntime(13491): java.lang.IllegalStateException
10-24 08:34:02.823: E/AndroidRuntime(13491): at android.media.MediaRecorder.start(Native Method)
10-24 08:34:02.823: E/AndroidRuntime(13491): at com.androtest.audio.startRecord(AudioActivity.java:357)
10-24 08:34:02.823: E/AndroidRuntime(13491): at com.androtest.audio.onOptionsItemSelected(AudioActivity.java:307)
10-24 08:34:02.823: E/AndroidRuntime(13491): at android.app.Activity.onMenuItemSelected(Activity.java)
10-24 08:34:02.823: E/AndroidRuntime(13491): at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java)
10-24 08:34:02.823: E/AndroidRuntime(13491): at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java)
10-24 08:34:02.823: E/AndroidRuntime(13491): at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java)
10-24 08:34:02.823: E/AndroidRuntime(13491): at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java)
10-24 08:34:02.823: E/AndroidRuntime(13491): at com.android.internal.view.menu.ActionMenuView.invokeItem(ActionMenuView.java)
10-24 08:34:02.823: E/AndroidRuntime(13491): at com.android.internal.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java)
10-24 08:34:02.823: E/AndroidRuntime(13491): at android.view.View.performClick(View.java)
10-24 08:34:02.823: E/AndroidRuntime(13491): at android.view.View$PerformClick.run(View.java)
10-24 08:34:02.823: E/AndroidRuntime(13491): at android.os.Handler.handleCallback(Handler.java)
10-24 08:34:02.823: E/AndroidRuntime(13491): at android.os.Handler.dispatchMessage(Handler.java)
10-24 08:34:02.823: E/AndroidRuntime(13491): at android.os.Looper.loop(Looper.java)
10-24 08:34:02.823: E/AndroidRuntime(13491): at android.app.ActivityThread.main(ActivityThread.java)
10-24 08:34:02.823: E/AndroidRuntime(13491): at java.lang.reflect.Method.invokeNative(Native Method)
10-24 08:34:02.823: E/AndroidRuntime(13491): at java.lang.reflect.Method.invoke(Method.java:511)
10-24 08:34:02.823: E/AndroidRuntime(13491): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java)
10-24 08:34:02.823: E/AndroidRuntime(13491): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java)
10-24 08:34:02.823: E/AndroidRuntime(13491): at dalvik.system.NativeStart.main(Native Method)
I've read hundreds of thread on this error but I can't find anything that solves my issue...
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…