如何以mp3格式保存音频文件。为什么android没有这种基本支持?
保存为3GP:
mFileName = Environment.getExternalStorageDirectory().getAbsolutePath();
mFileName += "/audiorecordtest.3gp";
private void startRecording() {
mRecorder = new MediaRecorder();
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mRecorder.setOutputFile(mFileName);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
try {
mRecorder.prepare();
} catch (IOException e) {
Log.e(LOG_TAG, "prepare() failed");
}
mRecorder.start();
}
答案 0 :(得分:2)
答案 1 :(得分:0)
1)尝试在不使用NDK的情况下将一种编码格式转换为另一种格式。
将一种形式或编码数据转换为另一种形式或编码数据的过程称为"转码"。转码的工作方式(据我所知)是 - 解码文件格式A>
2)MP3格式不是免费格式。有一家名为technicolor(Check:http://mp3licensing.com/mp3/index.html)的公司控制着mp3编码器的许可。请注意,如果您要推出带有mp3编码器的产品,您必须获得许可证(检查许可证协议)并且它不是免费的。所以android是一个开源的OS不能给mp3编码。您可以使用第三方编码器。从我提到的网站上阅读许可协议。
如果我错了,请纠正我。
此致 Shrish
答案 2 :(得分:0)
(更新)
Android正式支持MP3,但仅限于DEcoding:
http://developer.android.com/guide/appendix/media-formats.html
核心媒体格式:MP3•单声道/立体声8-320Kbps常数(CBR)或 可变比特率(VBR)MP3(.mp3)
您可以使用mpeg4作为替代方案。
您可以使用以下方式进行设置:
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
答案 3 :(得分:0)
将录音机的输出格式设置为mRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
,结果录音将是一个mp3文件。我用过这个。
答案 4 :(得分:0)
即使您的MediaRecorder创建的文件具有.mp3名称后缀,它也不是真正的mp3。真正的MP3文件以ID3标签开头,而不是0x00..ftyp3gp4'