Android:Mediarecoder在start()中抛出IllegalStateException

时间:2015-10-05 10:18:05

标签: android mediarecorder android-mediarecorder

我想在我的应用中使用mediarecorder来录制语音。 我完全按照http://developer.android.com/reference/android/media/MediaRecorder.html中的描述进行了操作,但exception方法总是抛出start()。 代码应该没问题,因为我也尝试了谷歌中名为Mediarecorder的代码示例,但我得到了同样的exception:

mRecorder = new MediaRecorder();
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mRecorder.setOutputFile(mFileName);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

    try {
        mRecorder.prepare();
    } catch (IOException e) {
        Log.e(TAG, "prepare() failed");
    }
    mRecorder.start();

我已将权限(android.permission.WRITE_EXTERNAL_STORAGE and android.permission.RECORD_AUDIO)添加到AndroidManifest.xml,,然后在我连接的智能手机上启动应用。

有人知道可能导致Exception的原因以及必须做什么吗?

1 个答案:

答案 0 :(得分:1)

感谢您的评论。我能够解决这个问题。我实际上缺少mRecorder.release(),所以似乎启动方法被调用了两次。