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

rah*_*ulg 3 mp4 android aac mediarecorder android-mediarecorder

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

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);
Run Code Online (Sandbox Code Playgroud)

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

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

请帮忙.

谢谢

rah*_*ulg 6

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

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

解决方案很简单,如果你正在使用mRecorder.setMaxDuration(),实现包含类MediaRecorder.OnInfoListener和当超时回调发生时调用mRecorder.stop()