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