J'ai besoin d'un petit coup de main pour lire les informations d'un fichier MP3 (Contenues dans le frame header, PAS dans le tag IDv3).
[...]
Merci par avance pour toute aide que vous pourrez m'apporter.
Tu devrais pouvoir te débrouiller avec ce code en C++ et les explications associées : http://www.codeproject.com/audio/MPEGAudioInfo.asp
A+
-- Romain PETIT http://cerbermail.com/?O16kfXOFcq (cliquez sur le lien ci-dessus pour me contacter en privé)
Vincent Barré
Franck a écrit ...
J'ai besoin d'un petit coup de main pour lire les informations d'un fichier MP3 (Contenues dans le frame header, PAS dans le tag IDv3).
Bonjour, Je peux te donner cela, c'est un peu long et simplifié mais tu devrai pouvoir te débrouiller avec. C'est écrit. en 5.5 mais facilement modifiables. (J'ai enlevé le calcul pour les VBR, si vraiment tu en a besoin, dis le moi)
@+ Vincent Barré //--------------------------------------------------------------------- // Lectrure Trame
BitRates_1L3 est un tableau de 16 entiers BitRates_1L2 est un tableau de 16 entiers BitRates_1L1 est un tableau de 16 entiers BitRates_2L1 est un tableau de 16 entiers BitRates_2Lx est un tableau de 16 entiers
SampleRates_1 est un tableau de 4 entiers courts SampleRates_2 est un tableau de 4 entiers courts SampleRates_25 est un tableau de 4 entiers courts
TableRates est un tableau de 512 entiers longs // Pour le VBR, Mémorise le Nbr de trame par BitRate MaxKilo est un entier = 512 MinKilo est un entier = 32
Trame = 0 T est un entier court = (etbinaire(Head[2],0x18) / 8) selon T cas 0 Mpeg = 25 cas 2 Mpeg = 2 cas 3 Mpeg = 1 fin
T = etbinaire(Head[2],0x06) / 2 selon T cas 1 Layer = 3 cas 2 Layer = 2 cas 3 Layer = 1 fin
si (Mpeg > 0) et (Layer > 0) alors
T = etbinaire(Head[3],0x0C) / 4 T++
selon Mpeg cas 1 Freq = SampleRates_1[T] cas 2 Freq = SampleRates_2[T] cas 25 Freq = SampleRates_25[T] fin
T = etbinaire(Head[3],0xF0) / 16 T++
si Mpeg = 1 alors selon Layer cas 1 Kilo = BitRates_1L1[T] cas 2 Kilo = BitRates_1L2[T] cas 3 Kilo = BitRates_1L3[T] FIN sinon si Layer = 1 Kilo = BitRates_2L1[T] sinon Kilo = BitRates_2Lx[T] fin fin
si (Freq > 0) et (Kilo > 0) alors Lg est un entier long = 1152 Lg = Lg * Kilo Lg = Lg * 1000 selon Freq cas 8 Echant_Sec = 08000 cas 11 Echant_Sec = 11025 cas 12 Echant_Sec = 12000 cas 16 Echant_Sec = 16000 cas 22 Echant_Sec = 22050 cas 24 Echant_Sec = 24000 cas 32 Echant_Sec = 32000 cas 44 Echant_Sec = 44100 cas 48 Echant_Sec = 48000 fin
si (TailleFich > 0) et (Trame > 0) alors NbEch = TailleFich NbEch = NbEch * 1152 NbEch = NbEch / Trame Tag_Duree = Arrondi(NbEch / (Echant_Sec / 100)) sinon Trame = 0 FIN
Franck a écrit
...
J'ai besoin d'un petit coup de main pour lire les informations d'un
fichier MP3 (Contenues dans le frame header, PAS dans le tag IDv3).
Bonjour,
Je peux te donner cela, c'est un peu long et simplifié mais tu devrai
pouvoir te débrouiller avec. C'est écrit. en 5.5 mais facilement
modifiables.
(J'ai enlevé le calcul pour les VBR, si vraiment tu en a besoin, dis le moi)
@+
Vincent Barré
//---------------------------------------------------------------------
// Lectrure Trame
BitRates_1L3 est un tableau de 16 entiers
BitRates_1L2 est un tableau de 16 entiers
BitRates_1L1 est un tableau de 16 entiers
BitRates_2L1 est un tableau de 16 entiers
BitRates_2Lx est un tableau de 16 entiers
SampleRates_1 est un tableau de 4 entiers courts
SampleRates_2 est un tableau de 4 entiers courts
SampleRates_25 est un tableau de 4 entiers courts
TableRates est un tableau de 512 entiers longs // Pour le VBR, Mémorise le
Nbr de trame par BitRate
MaxKilo est un entier = 512
MinKilo est un entier = 32
Trame = 0
T est un entier court = (etbinaire(Head[2],0x18) / 8)
selon T
cas 0
Mpeg = 25
cas 2
Mpeg = 2
cas 3
Mpeg = 1
fin
T = etbinaire(Head[2],0x06) / 2
selon T
cas 1
Layer = 3
cas 2
Layer = 2
cas 3
Layer = 1
fin
si (Mpeg > 0) et (Layer > 0) alors
T = etbinaire(Head[3],0x0C) / 4
T++
selon Mpeg
cas 1
Freq = SampleRates_1[T]
cas 2
Freq = SampleRates_2[T]
cas 25
Freq = SampleRates_25[T]
fin
T = etbinaire(Head[3],0xF0) / 16
T++
si Mpeg = 1 alors
selon Layer
cas 1
Kilo = BitRates_1L1[T]
cas 2
Kilo = BitRates_1L2[T]
cas 3
Kilo = BitRates_1L3[T]
FIN
sinon
si Layer = 1
Kilo = BitRates_2L1[T]
sinon
Kilo = BitRates_2Lx[T]
fin
fin
si (Freq > 0) et (Kilo > 0) alors
Lg est un entier long = 1152
Lg = Lg * Kilo
Lg = Lg * 1000
selon Freq
cas 8
Echant_Sec = 08000
cas 11
Echant_Sec = 11025
cas 12
Echant_Sec = 12000
cas 16
Echant_Sec = 16000
cas 22
Echant_Sec = 22050
cas 24
Echant_Sec = 24000
cas 32
Echant_Sec = 32000
cas 44
Echant_Sec = 44100
cas 48
Echant_Sec = 48000
fin
J'ai besoin d'un petit coup de main pour lire les informations d'un fichier MP3 (Contenues dans le frame header, PAS dans le tag IDv3).
Bonjour, Je peux te donner cela, c'est un peu long et simplifié mais tu devrai pouvoir te débrouiller avec. C'est écrit. en 5.5 mais facilement modifiables. (J'ai enlevé le calcul pour les VBR, si vraiment tu en a besoin, dis le moi)
@+ Vincent Barré //--------------------------------------------------------------------- // Lectrure Trame
BitRates_1L3 est un tableau de 16 entiers BitRates_1L2 est un tableau de 16 entiers BitRates_1L1 est un tableau de 16 entiers BitRates_2L1 est un tableau de 16 entiers BitRates_2Lx est un tableau de 16 entiers
SampleRates_1 est un tableau de 4 entiers courts SampleRates_2 est un tableau de 4 entiers courts SampleRates_25 est un tableau de 4 entiers courts
TableRates est un tableau de 512 entiers longs // Pour le VBR, Mémorise le Nbr de trame par BitRate MaxKilo est un entier = 512 MinKilo est un entier = 32
Trame = 0 T est un entier court = (etbinaire(Head[2],0x18) / 8) selon T cas 0 Mpeg = 25 cas 2 Mpeg = 2 cas 3 Mpeg = 1 fin
T = etbinaire(Head[2],0x06) / 2 selon T cas 1 Layer = 3 cas 2 Layer = 2 cas 3 Layer = 1 fin
si (Mpeg > 0) et (Layer > 0) alors
T = etbinaire(Head[3],0x0C) / 4 T++
selon Mpeg cas 1 Freq = SampleRates_1[T] cas 2 Freq = SampleRates_2[T] cas 25 Freq = SampleRates_25[T] fin
T = etbinaire(Head[3],0xF0) / 16 T++
si Mpeg = 1 alors selon Layer cas 1 Kilo = BitRates_1L1[T] cas 2 Kilo = BitRates_1L2[T] cas 3 Kilo = BitRates_1L3[T] FIN sinon si Layer = 1 Kilo = BitRates_2L1[T] sinon Kilo = BitRates_2Lx[T] fin fin
si (Freq > 0) et (Kilo > 0) alors Lg est un entier long = 1152 Lg = Lg * Kilo Lg = Lg * 1000 selon Freq cas 8 Echant_Sec = 08000 cas 11 Echant_Sec = 11025 cas 12 Echant_Sec = 12000 cas 16 Echant_Sec = 16000 cas 22 Echant_Sec = 22050 cas 24 Echant_Sec = 24000 cas 32 Echant_Sec = 32000 cas 44 Echant_Sec = 44100 cas 48 Echant_Sec = 48000 fin
si (TailleFich > 0) et (Trame > 0) alors NbEch = TailleFich NbEch = NbEch * 1152 NbEch = NbEch / Trame Tag_Duree = Arrondi(NbEch / (Echant_Sec / 100)) sinon Trame = 0 FIN
Franck
Bonjour,
Je peux te donner cela, c'est un peu long et simplifié mais tu devrai pouvoir te débrouiller avec. C'est écrit. en 5.5 mais facilement modifiables. (J'ai enlevé le calcul pour les VBR, si vraiment tu en a besoin, dis le moi)
Je suis également preneur pour les VBR ;-)
J'ai également trouvé quelques sources WD très interessantes ici:
http://www.qpratools.com/mp3tools/code/id3.html
Merci pour le coup de main!
@+
Bonjour,
Je peux te donner cela, c'est un peu long et simplifié mais tu devrai pouvoir
te débrouiller avec. C'est écrit. en 5.5 mais facilement modifiables.
(J'ai enlevé le calcul pour les VBR, si vraiment tu en a besoin, dis le moi)
Je suis également preneur pour les VBR ;-)
J'ai également trouvé quelques sources WD très interessantes ici:
Je peux te donner cela, c'est un peu long et simplifié mais tu devrai pouvoir te débrouiller avec. C'est écrit. en 5.5 mais facilement modifiables. (J'ai enlevé le calcul pour les VBR, si vraiment tu en a besoin, dis le moi)
Je suis également preneur pour les VBR ;-)
J'ai également trouvé quelques sources WD très interessantes ici:
http://www.qpratools.com/mp3tools/code/id3.html
Merci pour le coup de main!
@+
Vincent Barré
Franck écrit dans le message de news:
Bonjour,
Je peux te donner cela, c'est un peu long et simplifié mais tu devrai pouvoir te débrouiller avec. C'est écrit. en 5.5 mais facilement modifiables. (J'ai enlevé le calcul pour les VBR, si vraiment tu en a besoin, dis le moi)
Je suis également preneur pour les VBR ;-)
J'ai également trouvé quelques sources WD très interessantes ici:
http://www.qpratools.com/mp3tools/code/id3.html
Merci pour le coup de main!
@+
Bonjour et bonne année, Je peux t'envoyer mes procédures, elles gèrent les tags + les tags ID3v1 et v2, les wav et les mp3 + vbr, mais c'est assez long, envoie moi ton mail. @+ Vincent Barré Clique ici pour m'envoyer un mail : http://www.cerbermail.com/?fk8tCJ6coj
Franck écrit dans le message de news:
Bonjour,
Je peux te donner cela, c'est un peu long et simplifié mais tu devrai
pouvoir te débrouiller avec. C'est écrit. en 5.5 mais facilement
modifiables.
(J'ai enlevé le calcul pour les VBR, si vraiment tu en a besoin, dis le
moi)
Je suis également preneur pour les VBR ;-)
J'ai également trouvé quelques sources WD très interessantes ici:
http://www.qpratools.com/mp3tools/code/id3.html
Merci pour le coup de main!
@+
Bonjour et bonne année,
Je peux t'envoyer mes procédures, elles gèrent les tags + les tags ID3v1 et
v2, les wav et les mp3 + vbr, mais c'est assez long, envoie moi ton mail.
@+
Vincent Barré
Clique ici pour m'envoyer un mail :
http://www.cerbermail.com/?fk8tCJ6coj
Je peux te donner cela, c'est un peu long et simplifié mais tu devrai pouvoir te débrouiller avec. C'est écrit. en 5.5 mais facilement modifiables. (J'ai enlevé le calcul pour les VBR, si vraiment tu en a besoin, dis le moi)
Je suis également preneur pour les VBR ;-)
J'ai également trouvé quelques sources WD très interessantes ici:
http://www.qpratools.com/mp3tools/code/id3.html
Merci pour le coup de main!
@+
Bonjour et bonne année, Je peux t'envoyer mes procédures, elles gèrent les tags + les tags ID3v1 et v2, les wav et les mp3 + vbr, mais c'est assez long, envoie moi ton mail. @+ Vincent Barré Clique ici pour m'envoyer un mail : http://www.cerbermail.com/?fk8tCJ6coj