Momentan ist kein MP3-Encoder in das Android-Framework integriert (so weit ich weiß), so dass Sie es nicht out of the box machen können. Sie müssen dazu Ihrem Projekt eine MP3-Codierungsbibliothek hinzufügen.
Sie können sich dazu this Stackoverflow-Post für eine vollständige Antwort.
Aktualisierung 2015:
MP3 wird offiziell von Android unterstützt - (edit) - dies ist jedoch nur für die Decodierung, nicht für die Codierung.
Core Media Formate: MP3 • Mono / Stereo 8-320 Kbps konstant (CBR) oder variable Bitrate (VBR) MP3 (.mp3)
(bearbeiten) - Für kleinere Dateigrößen können Sie eine .mp4 verwenden. Sie können es einrichten mit:
mRecorder.setOutputFormat (MediaRecorder.OutputFormat.MPEG_4);
Es gibt definitiv einen MP3-Encoder im Android-Framework.
Wie ich antwortete hier auf stackoverflow alles, was Sie brauchen zu tun ist:
%Vor% Der wichtige Teil ist hier setOuputFormat
und setAudioEncoder
. MediaRecorder nimmt abspielbare MP3s auf, wenn Sie MediaRecorder.OutputFormat.MPEG_4
und MediaRecorder.AudioEncoder.AAC
zusammen verwenden.
Das Lustige ist, dass diese Lösung ein Ergebnis meiner Experimente mit dem ist, was funktioniert, und ich habe keine Ahnung, warum das funktioniert. Ich hatte gehofft, dass jemand das in den Kommentaren etwas beleuchten könnte.
BEARBEITEN
Wie @JohnSmith und ein paar andere in den Kommentaren darauf hingewiesen haben, codiert dies nicht das Audio im MP3-Format und es gibt keinen eingebauten MP3-Encoder auf Android .
Der Grund, warum diese Lösung zu funktionieren scheint, ist, dass MediaPlayer die Codierung als AAC erkennt, bevor die Spur beginnt (unabhängig von der Dateierweiterung). Obwohl der Mime-Typ der Ausgabedatei audio / mp4 ist, ist die Kodierung definitiv AAC.
Tags und Links android