Android: ¿Cómo obtener la salida de grabadora de medios en formato MP3?

Estoy creando una aplicación que contiene grabación de voz y reproducción. ¿Es posible grabar archivos en formato MP3?

Necesito el archivo de salida como formato mp3. Gracias.

Actualmente no hay ningún codificador MP3 integrado en el marco de Android (por lo que sé), por lo que no se puede hacer fuera de la caja. Necesita agregar una biblioteca de codificación MP3 a su proyecto para hacerlo.

Para ello, puede consultar esta publicación stackoverflow para obtener una respuesta completa.

Actualización 2015:

MP3 es oficialmente compatible con Android – (editar) – sin embargo, esto es sólo para la decodificación, no la codificación.

http://developer.android.com/guide/appendix/media-formats.html

Core Media Formatos: MP3 • Mono / Estéreo 8-320Kbps constante (CBR) o variable bit-rate (VBR) MP3 (.mp3)

  • (Editar) – Para tamaños de archivo más pequeños, puede utilizar un .mp4. Puede configurarlo con:

    MRecorder.setOutputFormat (MediaRecorder.OutputFormat.MPEG_4);

Definitivamente hay un codificador MP3 en el marco de Android.

Como he contestado aquí en stackoverflow todo lo que necesitas hacer es:

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(); 

La parte importante aquí es el setOuputFormat y el setAudioEncoder . MediaRecorder registra mp3 jugable si está usando MediaRecorder.OutputFormat.MPEG_4 y MediaRecorder.AudioEncoder.AAC juntos.

Lo curioso es que esta solución fue el resultado de mi experimentación con lo que funciona, y no tengo ni idea de por qué funciona. Esperaba que alguien pudiera arrojar alguna luz sobre esto en los comentarios.

EDITAR

Como @JohnSmith y algunos otros señaló en los comentarios, esto no codifica el audio en formato MP3 y no hay codificador incorporado de MP3 en Android.

La razón de esta solución parece funcionar es que MediaPlayer reconoce la codificación como AAC antes de comenzar la pista (independientemente de la extensión de archivo). Así que aunque el tipo de archivo de salida mime es audio / mp4, la codificación es definitivamente AAC.

Puedes usar lib mp3 LAME para codificar mp3 y puedes encontrar código de ejemplo aquí

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.