Paso 7: Lectura wav encabezado
Archivos de WAV se guardan con un tamaño especificado de frecuencia y datos.
Esta información está contenida en un encabezado de 44 bytes en el comienzo de un archivo wav.
Aunque algunos software extiende la cabecera (después de 35 bytes), lo que el lugar de los datos de tamaño más difícil de localizar.
Al leer el encabezado crear un búfer y copiar el inicio del archivo.
La frecuencia se almacena en 4 bytes a partir de 24 bytes en el archivo.
leer frecuencia especificada en el encabezado del archivo wav
byte headbuf [60]
tempfile.Seek(0);
tempfile.Read(headbuf,60);
retval = headbuf [27];
retval = (retval << 8) | headbuf [26];
retval = (retval << 8) | headbuf [25];
retval = (retval << 8) | headbuf [24];
Serial.Print (F "(frecuencia del archivo del));
Serial.Print(retval);
.
La mejor manera de encontrar la información de tamaño de datos es buscar la palabra "datos" en el encabezado.
Luego extraer los 4 bytes después de él, que componen el valor de tipo long
retval largo sin firmar;
int mypos = 40;
para (int i = 36; i < 60; i ++) {}
Si (headbuf [i] == había ') {}
{if(headbuf[i+1]=='a')}
{if(headbuf[i+2]=='t')}
{if(headbuf[i+3]=='a')}
por fin lo tenemos
mypos = + 4;
i = 60;
}
}
}
}
}
tempfile.Seek(mypos);
retval = headbuf [mypos + 3];
retval = (retval << 8) | headbuf [mypos + 2];
retval = (retval << 8) | headbuf [mypos + 1];
retval = (retval << 8) | headbuf [mypos];
.
OK tenemos la longitud de los datos y la frecuencia!
Los datos de audio sigue los 4 bytes que componen el valor de longitud de datos.