如何在Android中录制质量更好的音频文件?

时间:2013-02-20 05:49:23

标签: android android-mediarecorder aac android-audiorecord

我正在创建一个应用程序,它将Android上的录制文件播放到iphone,反之亦然。

现在我正在使用,

        audioRecorder = new MediaRecorder();
        audioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        audioRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
        audioRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);

使用此代码记录的文件大小为85 kb / 15秒,质量非常差。

如果我使用,

        audioRecorder = new MediaRecorder();
        audioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        audioRecorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);
        audioRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

然后文件大小为25kb / 15秒,质量比aac好得多。 但问题是 AMR 在iPhone中无法播放。

所以请建议Android的录制架构具有更好的质量,更实惠的尺寸,也可以在iPhone上播放。

2 个答案:

答案 0 :(得分:16)

如果要更改质量,请增加recorder.setAudioEncodingBitRate(value)。

recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
recorder.setAudioEncoder(MediaRecorder.getAudioSourceMax());
recorder.setAudioEncodingBitRate(16);
recorder.setAudioSamplingRate(44100);
recorder.setOutputFile(path);
recorder.prepare();
recorder.start(); 

编辑:

另一种选择是在您的应用中添加转换器。将AMR转换为AAC。

答案 1 :(得分:4)

此链接非常有用:Android supported media formats

本节为我们提供了有关音频和视频格式的更多信息。