在我的应用程序中,我使用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;
答案 0 :(得分:4)
这似乎是Android基于AAC的音频编码器中的一个错误。我发现的唯一解决方案是使用基于AMR的音频编码器。不幸的是,除了人声之外,AMR_WB听起来并不是那么好。
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_WB);
唯一的另一个选择,就像我所说的那样,是使用和AudioRecord,这要困难得多。