admin管理员组

文章数量:1548488

I am trying to record audio from the microphone on the Android emulator with this code:

recorder = new MediaRecorder();

recorder.setAudioSource(MediaRecorder.AudioSource.MIC);

recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);

recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

recorder.setOutputFile(Environment.getExternalStorageDirectory() + "/test/test.3gp");

try {

recorder.prepare();

}

catch (IOException io) {

Log.v(LOG_TAG, "Could not prepare the audio " + io.getMessage());

}

recorder.start();

For stopping the audio, this is the code:

recorder.stop();

recorder.reset();

recorder.release();

The recording process works fine but the resulting audio that is distorted. When I record an audio for 60 seconds duration and play it, it's duration is being shown as 120 seconds. The measurement is not exact but the this is just to give you an idea.

Only the AMR_NB encoder is working on my emulator. I have tried different output formats but the result is always the same.

Is it a limitation of the emulator or am I doing something wrong here?

Edit 1:

I have tried the AudioRecord class too and the result is the same dragging audio.

Thanks.

本文标签: 模拟器器上音频声音android