PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Récupérer les informations d'un fichier MP3
Récupérer les informations d'un fichier MP3
Débuté par leriche.christophe, 26 nov. 2006 12:01 - 1 réponse
Posté le 26 novembre 2006 - 12:01
Bonjour

Pourriez vous m'expliquer la méthode pour récupérer les informations d'un fichier Mp3
- Artiste
- Titre de l'album
- Année
- Etc...

Merci d'avance
Posté le 26 novembre 2006 - 19:50
Bonjour,

Il y a un exemple dans WinDev que traite de ça je crois.
Voile le code :


PROCEDURE EnteteFichierMP3(sNomFic)
// un fichier MP3 contient :
// le genre, le titre et le compositeur du morceau

sGenre est une chaîne //sgenre de la chanson
sTitre est une chaîne //Titre de la chanson
sArtiste est une chaîne //Artiste

sValCaract est un caractère //récupère le caractère lu
sBalise est une chaîne //Récupère la position de la balise TAG
nCpt est un entier //Compteur
nValRet est un entier //Valeur de retour de recherche dans une chaîne
nIdFic est un entier // identifiant du fichier ouvert


//Ouverture du fichier son
nIdFic=fOuvre(sNomFic,foLecture)

// test de l'ouverture
SI nIdFic=-1 ALORS
RETOUR
FIN

//On se positionne sur le 128ème caractère en partant de la fin du fichier MP3
fPositionne(nIdFic,-128,fpFin)

//Lecture des trois premiers caractères
sBalise = fLit(nIdFic,3)


//Si la balise est TAG, c'est un MP3
SI sBalise ~= "TAG" ALORS

//***********************************************************************
//******* On récupère et on affiche le titre du fichier son ************
//***********************************************************************
// 30 caractères qui suivent
POUR nCpt= 1 A 30
sValCaract = fLit(nIdFic,1)
//On supprime le caract(0) considéré comme fin de chaine
SI sValCaract=Caract(0) ALORS
sValCaract=Caract(160) //Caract(160) correspond à un espace
FIN
sTitre = sValCaract
FIN

sTitre = SansEspace(sTitre)

//Si aucun titre
SI sTitre = EOT ALORS sTitre = "Aucun"

//Affichage du titre




//***********************************************************************
//******* On récupère et on affiche le nom de l'artiste ************
//***********************************************************************
// 30 caractères qui suivent
POUR nCpt= 1 A 30
sValCaract = fLit(nIdFic,1)
//On supprime le caract(0) considéré comme fin de chaine
SI sValCaract = Caract(0) ALORS
sValCaract = Caract(160) //Caract(160) correspond à un espace
FIN
sArtiste = sValCaract
FIN

//Affichage du nom de l'artiste


//***********************************************************************
//******* On récupère et on affiche le sgenre du fichier son **********
//***********************************************************************
//On se positionne sur le 128ème caractère en partant de la fin du fichier MP3
fPositionne(nIdFic,-1,fpFin)

//Lecture des trois premiers caractères
sValCaract = fLit(nIdFic,1)

// recherche du genre
sGenre = sRenvoieGenre(sValCaract)

//Affichage du sgenre

SINON
//Affichage du nom du fichier
sTitre= fExtraitChemin(sNomFic,fFichier)
sGenre= "Inconnu"
sArtiste = "Inconnu"
FIN

// infomp3 est un champ de saisie
infomp3="Titre :" sTitre RC "Genre :" sGenre RC "Artiste :" sArtiste RC RC INFOfichier(sNomFic)

// fermeture du fichier
fFerme(nIdFic)


// Autre Prodédure :
PROCEDURE sRenvoieGenre(sValCaract)
// renvoie le genre deu morceau

sGenre est une chaîne

SELON sValCaract
CAS 1
sGenre="Blues"
CAS 2
sGenre="Classic Rock"
CAS 3
sGenre="Country"
CAS 4
sGenre="Dance"
CAS 5
sGenre="Disco"
CAS 6
sGenre="Grunge"
CAS 7
sGenre="Hip-Hop"
CAS 8
sGenre="Jazz"
CAS 9
sGenre="Metal"
CAS 10
sGenre="New-Age"
CAS 11
sGenre="Oldies"
CAS 12
sGenre=""
CAS 13
sGenre="Pop"
CAS 14
sGenre="Rithme&Blues"
CAS 15
sGenre="Rap"
CAS 16
sGenre="Reggae"
CAS 17
sGenre="Rock"
CAS 18
sGenre="Techno"
CAS 19
sGenre="Industrial"
CAS 20
sGenre="Alternative"
CAS 21
sGenre="Ska"
CAS 22
sGenre="Death-Metal"
CAS 23
sGenre="Pranks"
CAS 24
sGenre="Soundtrack"
CAS 25
sGenre="Euro-Techno"
CAS 26
sGenre="Ambiant"
CAS 27
sGenre="Trip-Hop"
CAS 28
sGenre="Vocal"
CAS 29
sGenre="Jazz&Funk"
CAS 30
sGenre="Fusion"
CAS 31
sGenre="Trance"
CAS 32
sGenre="Classical"
CAS 33
sGenre="Instrumental"
CAS 34
sGenre="Acid"
CAS 35
sGenre="House"
CAS 36
sGenre="Game"
CAS 37
sGenre="Sound-Clip"
CAS 38
sGenre="Gospel"
CAS 39
sGenre="Noise"
CAS 40
sGenre="AlternRock"
CAS 41
sGenre="Bass"
CAS 42
sGenre="Soul"
CAS 43
sGenre="Punk"
CAS 44
sGenre="Space"
CAS 45
sGenre="Mediative"
CAS 46
sGenre="Instrumental-Pop"
CAS 47
sGenre="Instrumental-Rock"
CAS 48
sGenre="Ethnic"
CAS 49
sGenre="Gothic"
CAS 50
sGenre="Darkwave"
CAS 51
sGenre="Techno-Industrial"
CAS 52
sGenre="Electronicien"
CAS 53
sGenre="Pop&Folk"
CAS 54
sGenre="Eurodance"
CAS 55
sGenre="Dream"
CAS 56
sGenre="Southern-Rock"
CAS 57
sGenre="Comedie"
CAS 58
sGenre="Cult"
CAS 59
sGenre="Gansta"
CAS 60
sGenre="Top-40"
CAS 61
sGenre="Christian-Rap"
CAS 62
sGenre="Pop/Funk"
CAS 63
sGenre="Jungle"
CAS 64
sGenre="Native-American"
CAS 65
sGenre="Cabaret"
CAS 66
sGenre="New-Wave"
CAS 67
sGenre="Psychadelic"
CAS 68
sGenre="Rave"
CAS 69
sGenre="Showtunes"
CAS 70
sGenre="Trailer"
CAS 71
sGenre="Lo-Fi"
CAS 72
sGenre="Tribal"
CAS 73
sGenre="Acid-Punk"
CAS 74
sGenre="Acid-Jazz"
CAS 75
sGenre="Polka"
CAS 76
sGenre="Retro"
CAS 77
sGenre="Musical"
CAS 78
sGenre="Rock&Folk"
CAS 79
sGenre="Hard-Rock"
CAS 80
sGenre="Unknow"
AUTRES CAS
sGenre="Inconnu"
FIN

RENVOYER sGenre




Voila, Cordialement,
Yann