[英]Android:How To Get Media Recorder Output In MP3 Format?
我正在創建一個包含錄音和播放的應用程序。 是否可以以MP3格式錄制文件?
我需要輸出文件作為mp3格式。 謝謝。
目前Android框架中沒有內置MP3編碼器(據我所知),所以你無法開箱即用。 您需要在項目中添加MP3編碼庫才能執行此操作。
為此,您可以查看此 stackoverflow帖子以獲得完整答案。
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);
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();
這里的重要部分是setOuputFormat
和setAudioEncoder
。 如果您同時使用MediaRecorder.OutputFormat.MPEG_4
和MediaRecorder.AudioEncoder.AAC
,MediaRecorder會記錄可播放的mp3。
有趣的是,這個解決方案是我嘗試工作的結果,我不知道為什么它的工作原理。 我希望有人能在評論中對此有所了解。
編輯
正如@JohnSmith和其他一些人在評論中指出的那樣, 這不會對 MP3格式的音頻進行編碼,並且Android上沒有內置的MP3編碼器。
此解決方案似乎有效的原因是MediaPlayer在開始跟蹤之前將編碼識別為AAC(無論文件擴展名如何)。 因此,盡管輸出文件的mime類型是audio / mp4,但編碼絕對是AAC。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.