如何在所有设备上使用audiorecorder

时间:2013-10-23 06:24:17

标签: android android-audiorecord

我尝试使用下面的audiorecorder方法录制声音,它在某些设备上很好但在其他设备上它只是第一次工作时我想再次使用它会抛出Error code -20 when initializing native AudioRecord object出错了什么?

final int RECORDER_BPP = 16;
int RECORDER_SAMPLERATE = 16000;
int RECORDER_CHANNELS = AudioFormat.CHANNEL_IN_MONO;
int RECORDER_AUDIO_ENCODING = AudioFormat.ENCODING_PCM_16BIT;
int bufferSizeInBytes = AudioRecord
        .getMinBufferSize(RECORDER_SAMPLERATE, RECORDER_CHANNELS,
                RECORDER_AUDIO_ENCODING);
// Initialize Audio Recorder.
AudioRecord audioRecorder = new AudioRecord(
        MediaRecorder.AudioSource.MIC, RECORDER_SAMPLERATE,
        RECORDER_CHANNELS, RECORDER_AUDIO_ENCODING, bufferSizeInBytes);

audioRecorder.startRecording();

1 个答案:

答案 0 :(得分:0)

只是一个猜测,但也许你没有在完成所有时间之后调用audioRecorder.release()。如果是这样,那么它可能会在第一时间工作,但在此之后您可能会不必要地保留音频资源,并且在重新启动手机之前可能无法正常工作。