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

标签 android mp4 mediarecorder aac android-mediarecorder

我正在尝试在我的 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);

但是,当我尝试在我的 PC 上播放它时,我无法播放 mp4 文件。我尝试使用所有媒体播放器(包括 VLC、KMPlayer 等)进行播放,但无法播放。

最令人恼火的一点是,Play Store 上有一些应用程序,例如“Easy Voice Recorder”,可以以 .mp4 格式录制并可以使用 Windows Media Player 播放。

请帮忙。

谢谢

最佳答案

找到解决方案。其实,还不如称之为 Android 的 bug。

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

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

关于android - 如何在 Android 2.3(Gingerbread) 中录制 mp4/m4a 格式的音频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14629145/

相关文章:

android - Ionic cordova 构建 android 失败 - 由于某些路径错误

java - Android 应用程序内部数据存储

android - 有没有办法在 Maps API v2 上显示所有信息窗口?

firefox - Mozilla Firefox 36 在播放我的 h264 MP4 文件时出现问题

android - 在 Android 的 MediaRecorder 中包含音频

java - 录制音频和 java.lang.NullPointerException 错误

java - 如何修改 MediaRecorder 源以允许暂停/恢复录制

recyclerView 中的 android 微调器无法正常工作

android - 如何在 Android 中使用 ffmpeg 合并音频和视频文件?

ios - 在Appcelerator生成的iOS应用程序中播放m4a/ALAC文件