【发布时间】:2012-01-01 03:34:55
【问题描述】:
我正在通过 MediaRecorder 录制音频,问题是:
当我使用 AMR_NB 编码器时,getDuration() 返回正确的值,但另一方面,当我使用 AAC 编码器,它提供了增加的 getDuration 值。(即,如果我录制 5 秒的音频,它会提供 40 秒并播放 40 秒)
录制音频文件的代码
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
recorder.setOutputFile(filePath);
recorder.prepare();
recorder.start();
播放录制音频的代码:
mp.setDataSource(audioPath);
mp.prepare();
Log.e("duration of record"," " +mp.getDuration());
mp.start();
请提供一些指导.. 谢谢。。
【问题讨论】:
-
看起来记录的文件是40秒。将其传输到 PC 并查看实际持续时间。
-
没有MediaRecorder怎么办?假设我已经有了原始输入流。