void mp3Infos(char* name,int* b,int* s) { long size; unsigned char c; FILE* file; /* ouvre le mp3 */ file=fopen(name,"rb"); /* boucle pour trouver le bitrate */ do { do { /* cherche un octet dont tous */ /* les bits sont positifs */ do { c=fgetc(file); } while (c!=0xFF); /* lit un second octet */ c=fgetc(file); /* sort de la boucle si les 4 premiers bits sont positifs */ } while ((c&0xF0)!=0xF0); /* lit les 4 premiers bits de l'octet suivant */ c=(fgetc(file)&0xF0)>>4; /* regarde a quel bitrate les 4 bits correspondent */ *b=bitrate[c]; /* recommence si on a un bitrate erronee */ } while ((*b==0)||(*b==999)); /* va a la fin du mp3 */ fseek(file,0,SEEK_END); /* recupere la position (donc la taille du mp3) */ size=ftell(file); /* ferme le mp3 */ fclose(file); /* calcule la duree d'apres le bitrate et la taille du fichier */ *s=(size/((*b)<<7)); /* attention la duree obtenue est aproximative ! */ }