我正在创建一个包含录音和播放的应用程序。是否可以以MP3格式录制文件?
我需要输出文件为mp3格式。谢谢。
我正在创建一个包含录音和播放的应用程序。是否可以以MP3格式录制文件?
我需要输出文件为mp3格式。谢谢。
据我所知,Android框架中目前没有内置MP3编码器,因此您无法直接完成该操作。您需要向项目添加MP3编码库才能进行操作。
为此,您可以查看此stackoverflow帖子获取完整答案。
Android框架中肯定有MP3编码器。
就像我在stackoverflow上回答的那样,你所需要做的就是:
MediaRecorder recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setOutputFile(Environment.getExternalStorageDirectory()
.getAbsolutePath() + "/myrecording.mp3");
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
recorder.prepare();
recorder.start();
setOutputFormat
和setAudioEncoder
。如果同时使用MediaRecorder.OutputFormat.MPEG_4
和MediaRecorder.AudioEncoder.AAC
,MediaRecorder将记录可播放的mp3。
有趣的是,这个解决方案是我试验了什么有效后得出的,我不知道为什么它有效。我希望有人能在评论中阐明一下。
编辑
正如@JohnSmith和其他一些人在评论中指出的那样,这并没有对音频进行MP3编码,Android上也没有内置的MP3编码器。2015年更新:
android已经正式支持MP3 - (编辑) - 不过仅限于解码,不支持编码。
http://developer.android.com/guide/appendix/media-formats.html
核心媒体格式: MP3 • 单声道/立体声8-320Kbps 恒定比特率(CBR)或可变比特率(VBR) MP3 (.mp3)
(编辑) - 为了使文件大小更小,可以使用.mp4格式。您可以这样设置:
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);