4

我正在尝试在我的 Android 应用程序中录制音频,但我想要使用 AAC LC 编码的 .mp4 格式的音频文件;可以在我的桌面上播放。因此,使用以下代码,我尝试录制,并且能够在我的 android 上播放它。

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 Store 上有像“Easy Voice Recorder”这样的应用程序,它以.mp4 格式录制,并且可以使用Windows Media Player 播放。

请帮忙。

谢谢

4

1 回答 1

6

找到了解决方案。实际上,还不如将其称为Android中的错误。

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

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

于 2013-02-03T15:54:56.507 回答