Decodificación de datos de audio codificados (MP3, etc) en Android sin reproducirlo
Versión corta: ¿Cuál es la mejor manera de obtener datos codificados en un MP3 (e idealmente en un AAC / Ogg / WMA) en una matriz Java o ByteBuffer que luego pueda manipular?
Estoy elaborando un programa que ha ralentizado y acelerar los archivos de sonido como una de sus características. Esto funciona bien para los archivos WAV, que son una cabecera más los datos binarios exactos que deben ser enviados al altavoz, y ahora tengo que implementar para MP3 (idealmente, esto también apoyaría AAC, Ogg y WMA, pero desde Estos son formatos menos populares esto no es necesario). Android no expone una interfaz para decodificar el MP3 sin reproducirlo, por lo que necesito crear esa interfaz.
- Streaming de audio desde una URL en Android usando MediaPlayer?
- Comprar música intención
- Cómo extraer metadatos de mp3?
- Formato de música Android recomendado - mp3, ogg u otro?
- Android muestra sólo mp3 con ACTION_GET_CONTENT
Tres opciones se presentan, aunque estoy abierto a otros:
1) Escriba mi propio decodificador. Ya tengo un detector de marco funcional que esperaba utilizar para la opción (3), y ahora solo debería implementar las tablas de decodificación de Huffman.
2) Utilice JLayer, o una biblioteca equivalente de Java, para manejar la decodificación. No estoy totalmente claro en cuáles son las ramificaciones de la licencia aquí.
3) Conéctese a la biblioteca libmedia / MediaPlayerService. Esto es lo que hace SoundPool, y la cantidad de uso de ese servicio me hace creer que aunque es oficialmente inestable, esa implementación no va a ninguna parte. Esto significa escribir código JNI para conectarse al servicio, pero estoy descubriendo que eso es un profundo agujero de conejo. En la superficie, estoy teniendo problemas con la plantilla sp <>.
- Android SDK MediaPlayer no busca correctamente
- Raw no se puede resolver o no es un campo
- Descargar un archivo sin extensión desde un servidor
- Precisión de MediaPlayer.seekTo (int msecs)
- Android: grabar sonido en formato mp3
- Error de MediaPlayer de Android: Error de MediaPlayer (1, -2147483648) en Stream de Internet
- Reproducción de un MP4 o MP3 desde un enlace dentro de un WebView de Android
- ¿Es posible hacer una consulta sin procesar en la base de datos de metales de Android de meta sqlite?
Lo hice con libmad y el NDK. JLayer es una forma de lento y el marco de los medios de comunicación es un objetivo en movimiento. Puede encontrar información y código fuente en http://apistudios.com/hosted/marzec/badlogic/wordpress/?p=231
No lo he probado, pero mp3transform es LGPL.
- No se puede crear un conversor para mi clase en Android Retrofit2 converter-simplexml library
- Establecer el color de progreso de SeekBar a transparente