dj>excuse moi mais tu t'écartes du sujet, c'est la durée d'une mp3 (minutes:secondes) que Kyle veut. D'ailleur cette valeur ne fait pas partit du TAG mais du MPEG_HEADER, qui est autre chose. j'ajouterais que leur solution pour les tags est affreuse : c'est pourtant simple d'utiliser une structure pour le tag et une fonction qui la remplie. Dans tout les cas, j'ai fait mes routines pour les tag + le header des mp3 (la durée donc) et je l'ai envoyé a Kyle. Ca devrait le faire, enfin j'espere.
Djedjeridooo
Bien,
le plus propre, le plus pro, le moins "bidouille", le plus prescis, qui ne te demande aucun calcul et qui te permettra une évolution simple et rapide de ton soft, c'est de lire le ID3 Tag du fichier MP3.
Le ID3 c'est des informations qui sont inscrites dans le fichier et que tu peux afficher par l'intermediaire de n'importe quel logiciel qui lit les MP3 (Winamp...)
Le ID3 contient,
- le nom de l'artiste (si present)
- le nom du titre (si present)
- le nom de l'album (si present)
- etc....
- la frequence d'echantillonage (toujours)
- le nombre de frame (toujours)
- LA DUREE (toujours)
- etc....
Tu peux donc toi aussi lire ces informations dans le fichier mp3.
C'est d'une simplicité enfantine.
Comment faire ?
1) télécharger la librairie officielle à www.id3.org (avec les sources GNU)
2) inserer la librairie dans ton projet
3) Utiliser les fonctions suivantes :
ID3_Tag myTag;
myTag.Link ( “something.mp3” );
char *ID3_GetArtist (&myTag);
char* ID3_GetAlbum (&myTag);
char* ID3_GetTrack (&myTag);
char* ID3_GetComment (&myTag);
char* ID3_GetGenre (&myTag);
et celle qui t'interesse :
uint32 readSeconds( arguments que j'ai oublié...)
j'ecris un soft en ce moment qui utilise cette librairie. Elle est stable, propre, bien écrite, performante, c'est la meme qu'utilise Winamp et 90% des programmes qui lisent les fichiers mp3.
Kyle_Katarn
merci les gars !
C_Po_Ma_Faute
antibillou a écrit a écrit :
Tu veux dire taille d'un mp3 // un WAVE
si oui alors un WAV est 12 fois + gros qu'un mp3 ???
si c'est pas la réponse que tu voulais, alors merci de préciser ta question
ben non, ça dépend du taux de compression
robUx4
pareil
vince10
ok je te l'envoi sur ton mail
Kyle_Katarn
pourrais tu m'envoyer ton bout de code ?
robUx4
Si, j'ai un truc en C++ que j'ai jamais fini (inspiré de mp3_check que tu peux trouver ailleurs, en C++).
vince10
sinon solution plus simple tu utilise winamp par l'intermediaire de la base de registre et tu peux ainsi récupérer la durée...mais bon je sais po si c'est ca qui t'interesse
je vais rechercher le bout de code au cas où...
Kyle_Katarn
ok, ça je le savais mais personne n'aurais un bout de code le faisant.
sinon je veux bien le faire mais bon ... ça prends pa mal de tps pour un truc qui sera accessoire dans mon soft ;-)
robUx4
Alors il y a la méthode simple et compliqué :
La compliqué tu scannes le fichier et à chaque frame tu additionnes le nombre de sample qu'elle contient et à la fin du divise par la fréquence d'échantillonage...
La simple : pour un CBR (mais t'as aucun moyen de le savoir à l'avance) tu détermines le bitrate, t'as la taille et tu fais l'opération qui va bien. Pour un VBR si t'as de la chance t'as la frame Xing au début et t'as la taille dedans, sinon faut scanner tout le fichier comme dans la méthode compliquée.
Bref la seule méthode fiable : la compliquée.
antp
antibillou a écrit a écrit :
Oui, mais la durée d'un fichier, c'est quoi pour toi ?
y a de ces questions bizarres.
fichier, dans ce cas mp3 = musique.
musique, ca a une certaine durée, c'est pas illimité (à moins que tu le joues en boucle :D)
durée d'une musique qui est dans un mp3, ca donne des chiffres, qui seraient par exemples heures minutes secondes.
pour en revenir au calcul, on est obligé de parcourir tout le mp3 alors ? enfin ça a l'avantage de fonctionner de la même manière pour le VBR que le CBR alors...
Kyle_Katarn
merci
karlkox
arf, nan c'est bon je l'ai, par contre pour les vbr j'ai pas cherché. Tout ce que je sais vien de la : http://www.id3.org/mp3frame.html
karlkox
j'etais en train de taper les explications mais c'est trop long, file moi ton mail, ca sera plus simple :)
antibillou
Oui, mais la durée d'un fichier, c'est quoi pour toi ?
Kyle_Katarn
ben la durée pour moi c'est la durée en min,sec,frames
antibillou
Tu veux dire taille d'un mp3 // un WAVE
si oui alors un WAV est 12 fois + gros qu'un mp3 ???
si c'est pas la réponse que tu voulais, alors merci de préciser ta question
Kyle_Katarn
QQ un a t il un algo pour déterminer la durée d'un fichier à partir du fichier mp3 lui même (même pour les VBR) ?