如何在Android 2.3(Gingerbread)中以mp4 / m4a格式录制音频?

时间:2013-01-31 15:21:25

标签: android mp4 mediarecorder aac android-mediarecorder

我正在尝试在我的Android应用中录制音频,但我想要采用AAC LC编码的.mp4格式的音频文件;在我的桌面上播放。所以,使用下面的代码,我试着录制,我能够在我的机器人上播放它。

mRecorder = new MediaRecorder();
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mRecorder.setOutputFile("/mnt/sdcard/abcapp/test.mp4");
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);

但是,当我试图在我的电脑上播放时,我无法播放mp4文件。我尝试使用所有媒体播放器,包括VLC,KMPlayer等,但无法播放它。

最令人恼火的一点是,Play商店中的应用程序就像“Easy Voice Recorder”一样,以.mp4录制,可以使用Windows Media Player播放。

请帮忙。

由于

1 个答案:

答案 0 :(得分:6)

找到解决方案。实际上,不妨把它称为Android中的一个错误。

我没有使用mRecorder.stop()停止音频,但设置了mRecorder.setMaxDuration(10000)。因此,录音机自动停止并且没有将音频编码到AAC或者没有应用适当的容器,因此无法获得正确的文件。

如果您使用mRecorder.setMaxDuration(),使用MediaRecorder.OnInfoListener实现包含类,并且在超时回调发生时调用mRecorder.stop()

,解决方案很简单