Pregunta

Trabajo en un importador de audio en Java (utilizado en un secuenciador de tambor) y tengo el siguiente problema con la importación de archivos AIFF:

Tengo 2 archivos AIFF del mismo tipo (24 bits, 44100kHz, Mono), uno se crea en una Mac, el otro se crea con Wavelab en una computadora de Windows. Ambos archivos son PCM sin comprimir, ambos son Form == AIFF.

El AIFF del Mac es Bigendian (como debería ser), el AIFF de Wavelab (Windows) es Littleendian.

Ambos archivos se pueden reproducir correctamente en Wavelab (Windows), así como en QuickTime (Windows). ¿Cómo pueden estas herramientas detectar la endianness de estos archivos? De cualquier manera, debe ser posible, de lo contrario, al menos uno de los archivos sonaría al igual que el ruido (eso es lo que sucede en mi aplicación).

¿Existe alguna información oculta dentro del encabezado del archivo o alguna otra forma para determinar la endiatura del archivo AIFF? ¿Alguna sugerencia?

Muchas gracias

¿Fue útil?

Solución

Un rápido Google dice que los archivos AIFF son Big Endian.

Sin embargo, según Wikipedia Hay otro formato llamado AIFF-C que comprime los datos. Apple usa Little Endian en estos días y creó un método de compresión falso llamado sembrar Eso esencialmente significa "sin compresión sino poca endian". Es posible que tengas que verificar eso.

Aparte de eso, Plain AIFF no proporciona forma de verificar si hay endianness. Un AIFF estándar que está codificado en Little Endian parece violar la especificación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top