我正在尝试在我的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播放。
请帮忙。
由于
答案 0 :(得分:6)
找到解决方案。实际上,不妨把它称为Android中的一个错误。
我没有使用mRecorder.stop()
停止音频,但设置了mRecorder.setMaxDuration(10000)
。因此,录音机自动停止并且没有将音频编码到AAC或者没有应用适当的容器,因此无法获得正确的文件。
如果您使用mRecorder.setMaxDuration()
,使用MediaRecorder.OnInfoListener
实现包含类,并且在超时回调发生时调用mRecorder.stop()