Ayuda para guerreros usando el lenguaje C
#include
//struct para ID3V1
typedef struct tagID3{
char etiqueta[3]; //"TAG"
char título[30]; //título
char artista[30] //artista
char album[30]; //álbum
char año[4]; //año
char comentario[30]; //comentario
char genero; carácter nulo relleno
}ID3Struct,*pID3Struct;
int main()
{
FILE *mp3File = NULL; p>
int main()
{
ARCHIVO *mp3File = NULL;
p>
char mp3FileName[FILENAME _MAX] = { 0};
ID3Struct id3Struct;
// Se utiliza para generar información
char tag[4 ] = {0}; título de carácter[31] = {0};
artista de carácter[31] = {0};
álbum de carácter[ 31] = {0};
char año[5] = {0};
char comentario[31] = {0};
char género ;
char extensiónFilaName[5] = {0}; //Guardar extensión
printf("Ingrese la ruta completa del mp3:"); //por ejemplo, c:\ mp3
//La longitud debe ser. mayor o igual a 5 para garantizar que sea un archivo*.
if (strlen(mp3FileName) < 5)
{
printf("Nombre del archivo Error");
return 1;
}
memcpy(extentFilaName,&mp3FileName[strlen(mp3FileName) - 4],4);
//Juzga el nombre de la expansión
if (strcmp (extentFilaName,".mp3") ! = 0)
{
printf("Error de nombre de expansión de archivo");
devuelve 1;
}
mp3File = fopen(mp3FileName, "rb");
if (mp3File == NULL)
{
printf("El archivo no existe ! ") )
Devuelve 1;
}
fseek(mp3File,-sizeof(ID3Struct),SEEK_END);
//mp3 Si hay una marca TAG, la longitud debe ser mayor que 128
if (ftell(mp3File) & lt; sizeof(ID3Struct))
{
printf("¡Longitud del archivo inferior a 128 bytes sin indicador de etiqueta!")
fclose(mp3File);
Devuelve 1;
}
fread(&id3Struct,1,sizeof(ID3Struct),mp3File);
memcpy(tag, id3Struct.tag,3);
memcpy(title,id3Struct.title,30);
memcpy(artista,id3Struct.artist,30);
memcpy(album,id3Struct.album ,30);
memcpy(año,id3Struct.año,4);
memcpy(comentario,id3Struct.comment,30);
if (strcmp (etiqueta, "TAG") ! = 0)
{
printf("Etiqueta ETIQUETA no encontrada\n");
}
else
{
printf("título: %s\n", título);
printf("artista%s\n", artista);
printf("álbum:
printf("%s\n",álbum);
printf("año:%s\n ",año);
printf("comentario:%s\n",comentario);
}
fclose(mp3File);
devuelve 0;
}
Algunos archivos de formato mp3 no tienen etiquetas
.