Cómo codificar un WAV a un mp3 en un dispositivo Android

He simplificado mi pregunta y ofrece una recompensa: ¿Qué opciones hay para comprimir datos de audio PCM sin procesar a un mp3 en un dispositivo Android.

Mi post original: Estoy creando un sintetizador en mi teléfono Android, y he estado generando datos PCM para enviar a los altavoces. Ahora me pregunto si puedo codificar estos datos de PCM como un mp3 para guardar en la tarjeta sd. El objeto MediaRecorder puede codificar el audio procedente del micrófono en varios formatos, pero no permite la codificación de datos de audio generados mediante programación.

Así que mi pregunta es, ¿hay una API estándar de Android para la codificación de audio? Si no, ¿qué soluciones basadas en Java o NDK? ¿Y puede recomendar alguno de ellos?

Si no lo hago, tendré que guardar mi audio generado como un archivo WAV, que puedo hacer fácilmente.

Java puro
Mira en la implementación de sala limpia de Tritonus de javasound que ofrece un complemento de codificador MP3 aquí: http://www.tritonus.org/plugins.html
En segundo lugar, sugeriría que busque en las bibliotecas de jzoom JLayer o JLayerME: http://www.javazoom.net/javalayer/javalayer.html (esto sólo puede ser decodificar, no está seguro)
Si ésos no se adaptan a su necesidad usted puede mirar este artículo de 2000 sobre la adición de capacidades MP3 a J2SE (con fuente): http://www.javaworld.com/javaworld/jw-11-2000/jw-1103-mp3 .html

Ruta nativa
Si desea un rendimiento "nativo", me gustaría ver un puerto FFmpeg o Lame para Android. Lame: http://lame.sourceforge.net/

Por lo que sé que no puede hacer esto utilizando sólo las herramientas en el SDK. De acuerdo con la guía oficial de desarrolladores, no hay un codificador MP3 en la plataforma ( formatos de soporte soportados por Android ), por lo que tiene que cargar un codificador por su cuenta usando el NDK y escribir algún código de envoltura para recibir las muestras de audio a través de JNI.

Actualmente estoy trabajando en el portado de algunos decodificadores de audio del proyecto Rockbox para mi propio reproductor de música, y puede grabar audio en MP3, así que tal vez debería intentar buscar en su fuente y encontrar la biblioteca de codificadores. La mayoría de los decodificadores tienen optimizaciones ARM que acelera las cosas noticable, así que supongo que algunos de los codificadores también tienen esta adición.

Codificador Mp3 no está disponible en android.you tiene que compilar libav con mp3 lame lib puede encontrar el código de http://libavandroid.wordpress.com

  • Cómo reproducir un archivo de onda comprimido en Flash Mobile
  • No se puede reproducir un archivo .wav invertido con MediaPlayer
  • Comparar voz wav en android o etiqueta de voz (comandos de voz) API
  • Codificar wav a AAC en Android
  • Creación de un archivo WAV a partir de datos PCM sin procesar utilizando el SDK de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.