簡體   English   中英

Android:如何獲取MP3格式的媒體記錄器輸出?

[英]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();

這里的重要部分是setOuputFormatsetAudioEncoder 如果您同時使用MediaRecorder.OutputFormat.MPEG_4MediaRecorder.AudioEncoder.AAC ,MediaRecorder會記錄可播放的mp3。

有趣的是,這個解決方案是我嘗試工作的結果,我不知道為什么它的工作原理。 我希望有人能在評論中對此有所了解。

編輯

正如@JohnSmith和其他一些人在評論中指出的那樣, 這不會對 MP3格式的音頻進行編碼,並且Android上沒有內置的MP3編碼器。

此解決方案似乎有效的原因是MediaPlayer在開始跟蹤之前將編碼識別為AAC(無論文件擴展名如何)。 因此,盡管輸出文件的mime類型是audio / mp4,但編碼絕對是AAC。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM