2012-06-25 12 views
7

Actualmente estoy trabajando en una aplicación que le permite al usuario elegir un archivo de audio MP3. El archivo es procesado por mi aplicación.¿Cómo decodificar MP3 en Android dentro de la aplicación?

Para este procesamiento, la aplicación necesitaría decodificar archivos de audio para obtener la salida de PCM en bruto.

para decodificar MP3, tengo dos opciones:

  1. utilizar el sistema Android para decodificar MP3 y obtener los datos PCM.
  2. Decodifico el MP3 por teléfono, SIN pagar licencias de MP3.

Mi pregunta es si el # 1 es técnicamente posible. Y para el # 2, si la licencia de MP3 en el teléfono cubre una aplicación también?

Respuesta

2

Que yo sepa, no existe una forma proporcionada por Android para decodificar archivos MP3.

He usado JLayer en el pasado, y puedo recomendarlo para el procesamiento de MP3. Usar el NDK con una biblioteca de C++ podría ser más rápido, pero si buscas mantenerlo en Java, eso es lo que usaría. Todavía es más rápido que en tiempo real, aproximadamente 30 segundos para decodificar todos los fotogramas en un promedio de bits de 3 minutos MP3. Eso es con un Galaxy S (1 GHz), por lo que los teléfonos más nuevos son más rápidos.

En lo que respecta a las licencias, no puedo ayudarlo allí. JLayer en sí es LGPL, pero el mundo de las licencias de MP3 es más oscuro que el aceite de motor usado. Después de unos días de buscar una respuesta concreta, simplemente me di por vencido y lo hice. El mundo en general parece dividido sobre quién posee la licencia en primer lugar.

0

el sistema Android puede decodificar archivos mp3 ahora, ver here que describe el codec de los medios de comunicación, contenedor, y compatibilidad con el protocolo de red que proporciona la plataforma Android.

MedieCodec es un marco muy potente para codificar y decodificar archivos multimedia.

+0

Se recomiendan enlaces a recursos externos, pero agregue contexto alrededor del enlace para que los demás usuarios tengan una idea de qué es y por qué está allí. Siempre cite la parte más relevante de un enlace importante, en caso de que el sitio objetivo no esté disponible o esté permanentemente fuera de línea. Ver [cómo responder] (https://stackoverflow.com/help/how-to-answer) – SilverNak

Cuestiones relacionadas