MediaRecorder切断文件结尾

时间:2013-04-08 18:35:16

标签: java android audio mediarecorder

在我的应用程序中,我使用MediaRecorder以m4a(AAC编码)录制音频。我的所有录音都缩短了(大约半秒钟)。出于我的应用程序的目的,我必须拥有整个文件。这是一个错误还是我缺少的东西?

记录代码:

       //set up recorder
        recorder = new MediaRecorder();
        recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_RECOGNITION);
        recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
        recorder.setAudioChannels(1);
        recorder.setAudioSamplingRate(16000);
        recorder.setOutputFile(fileName);
        recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);

        //begin recording
        recorder.prepare();
        recorder.start();

停止记录代码:

        //stop recording
        recorder.stop();
        recorder.release();
        recorder = null;

1 个答案:

答案 0 :(得分:4)

这似乎是Android基于AAC的音频编码器中的一个错误。我发现的唯一解决方案是使用基于AMR的音频编码器。不幸的是,除了人声之外,AMR_WB听起来并不是那么好。

recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_WB);

唯一的另一个选择,就像我所说的那样,是使用和AudioRecord,这要困难得多。