Cómo utilizar el códec de audio AACLib V1.0 en Android
Codificación AAC:
(1) Crear un objeto codificador como variable miembro
codificador aac.Encoder;
(2) Inicializarlo
encoder = new aac.Encoder();
if(! encoder.open(11025, 1))
{
Log.d("mylog", "no se pudo abrir el codificador!\n");
encoder = null;
}
Aquí, usted debe especificar la frecuencia de muestreo y el número de canales de la fuente de audio de entrada (formato PCM), si es CHANNEL_OUT_MONO, el número de canales = 1, de lo contrario el número de canales es 2. La frecuencia de muestreo generalmente se establece en 11025, porque el rendimiento de los teléfonos móviles es limitado. Si se configura demasiado alta, no podrá procesar, y 11025 es suficiente para procesar voces humanas.
(3) Codificación
Los datos PCM recibidos se entregarán al codificador para su procesamiento. El requisito de la fuente de entrada es ENCODING_PCM_16BIT, es decir, cada muestra es de 16 BITS. El objeto codificador tiene dos buffers: inbuf y outbuf. Obviamente, durante la codificación, inbuf se usa para almacenar los datos PCM recibidos y outbuf se usa para almacenar los datos codificados.
int out_size = encoder.encode(in_size);
El valor de retorno out_size representa la longitud de los datos válidos en outbuf. En este punto, puede enviar los datos aac en outbuf a través de la red o para otros fines.
En este caso, el usuario necesita conocer la duración de cada procesamiento por parte del codificador, es decir, el tamaño de un fotograma. Para mono MONO, se deben ingresar 2048 bytes de datos a la vez. Para ESTÉREO de dos canales, se deben ingresar 4096 bytes de datos. Decoder;
(2) Inicialización
decoder = new aac.Decoder();
if(! decoder.open())
{
Log.d("mylog", "¡no se pudo abrir el decodificador!\n");
decodificador = null;
} p>
(3) Decodificación
El objeto decodificador también tiene un inbuf y un outbuf. Coloque el marco aac a decodificar en inbuf
int pcm_size = decoder.decode. ( aac_size);
La longitud efectiva de los datos decodificados en outbuf es pcm_size, el valor de retorno de la función anterior. En este momento, puede extraer los datos PCM en outbuf para reproducirlos u otros fines.