Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
ID3v2
Message
De
06/10/2009 06:46:32
Neil Mc Donald
Cencom Systems P/L
The Sun, Australie
 
 
À
06/10/2009 06:06:38
Information générale
Forum:
Visual FoxPro
Catégorie:
Autre
Titre:
Re: ID3v2
Divers
Thread ID:
01427855
Message ID:
01427856
Vues:
85
>I am looking for code-example in VFP 9.0 on reading/changing/writing MP3 ID3v2 tag's in MP3 files.
>Who can help?
First read the mp3. FNAME is a variable that should be the path+filename.
      MANIP=FOPEN(FNAME) &&Open the mp3 file.
      FILELENGTH=FSEEK(MANIP, 0, 2) &&How big the file is.
      GOTOID3START=FSEEK(MANIP,-128,1) &&ID3 info is in first 128 bytes of a mp3 file.
      ID3TAG=FREAD(MANIP, 128) &&place the 128 bytes into a variable.
      =FCLOSE(MANIP) &&Got what we need, close the mp3.

Then dissect the ID3TAG variable.
            LCSONG=RTRIM(STRTRAN(SUBSTR(ID3TAG,4,30),CHR(0),"")) &&SONG
            LCARTIST=RTRIM(STRTRAN(SUBSTR(ID3TAG,34,30),CHR(0),"")) &&ARTIST
            LCALBUM=RTRIM(STRTRAN(SUBSTR(ID3TAG,64,30),CHR(0),"")) &&ALBUM
            LCYEAR=RTRIM(STRTRAN(SUBSTR(ID3TAG,94,4),CHR(0),"")) &&YEAR
            LCTRACKID=ASC(RTRIM(STRTRAN(SUBSTR(ID3TAG,127,1),CHR(0),""))) &&TRACKID
            LCGENREID=ASC(RIGHT(ID3TAG,1)) &&GENREID

And then use GETGENRE() to convert GENREID to a name. (Yes, there is a genre called 'Porn Groove'.)
GETGENRE() 
FUNCTION GETGENRE

      IF LCGENREID = 00
            LCGENRE = 'Blues'
      ENDIF
      IF LCGENREID = 01
            LCGENRE = 'Classic Rock'
      ENDIF
      IF LCGENREID = 02
            LCGENRE = 'Country'
      ENDIF
      IF LCGENREID = 03
            LCGENRE = 'Dance'
      ENDIF
      IF LCGENREID = 04
            LCGENRE = 'Disco'
      ENDIF
      IF LCGENREID = 05
            LCGENRE = 'Funk'
      ENDIF
      IF LCGENREID = 06
            LCGENRE = 'Grunge'
      ENDIF
      IF LCGENREID = 07
            LCGENRE = 'Hip-Hop'
      ENDIF
      IF LCGENREID = 08
            LCGENRE = 'Jazz'
      ENDIF
      IF LCGENREID = 09
            LCGENRE = 'Metal'
      ENDIF
      IF LCGENREID = 10
            LCGENRE = 'New Age'
      ENDIF
      IF LCGENREID = 11
            LCGENRE = 'Oldies'
      ENDIF
      IF LCGENREID = 12
            LCGENRE = 'Other'
      ENDIF
      IF LCGENREID = 13
            LCGENRE = 'Pop'
      ENDIF
      IF LCGENREID = 14
            LCGENRE = 'R&B'
      ENDIF
      IF LCGENREID = 15
            LCGENRE = 'Rap'
      ENDIF
      IF LCGENREID = 16
            LCGENRE = 'Reggae'
      ENDIF
      IF LCGENREID = 17
            LCGENRE = 'Rock'
      ENDIF
      IF LCGENREID = 18
            LCGENRE = 'Techno'
      ENDIF
      IF LCGENREID = 19
            LCGENRE = 'Industrial'
      ENDIF
      IF LCGENREID = 20
            LCGENRE = 'Alternative'
      ENDIF
      IF LCGENREID = 21
            LCGENRE = 'Ska'
      ENDIF
      IF LCGENREID = 22
            LCGENRE = 'Death Metal'
      ENDIF
      IF LCGENREID = 23
            LCGENRE = 'Pranks'
      ENDIF
      IF LCGENREID = 24
            LCGENRE = 'Soundtrack'
      ENDIF
      IF LCGENREID = 25
            LCGENRE = 'Euro-Techno'
      ENDIF
      IF LCGENREID = 26
            LCGENRE = 'Ambient'
      ENDIF
      IF LCGENREID = 27
            LCGENRE = 'Trip-Hop'
      ENDIF
      IF LCGENREID = 28
            LCGENRE = 'Vocal'
      ENDIF
      IF LCGENREID = 29
            LCGENRE = 'Jazz+Funk'
      ENDIF
      IF LCGENREID = 30
            LCGENRE = 'Fusion'
      ENDIF
      IF LCGENREID = 31
            LCGENRE = 'Trance'
      ENDIF
      IF LCGENREID = 32
            LCGENRE = 'Classical'
      ENDIF
      IF LCGENREID = 33
            LCGENRE = 'Instrumental'
      ENDIF
      IF LCGENREID = 34
            LCGENRE = 'Acid'
      ENDIF
      IF LCGENREID = 35
            LCGENRE = 'House'
      ENDIF
      IF LCGENREID = 36
            LCGENRE = 'Game'
      ENDIF
      IF LCGENREID = 37
            LCGENRE = 'Sound Clip'
      ENDIF
      IF LCGENREID = 38
            LCGENRE = 'Gospel'
      ENDIF
      IF LCGENREID = 39
            LCGENRE = 'Noise'
      ENDIF
      IF LCGENREID = 40
            LCGENRE = 'Alternative Rock'
      ENDIF
      IF LCGENREID = 41
            LCGENRE = 'Bass'
      ENDIF
      IF LCGENREID = 42
            LCGENRE = 'Soul'
      ENDIF
      IF LCGENREID = 43
            LCGENRE = 'Punk'
      ENDIF
      IF LCGENREID = 44
            LCGENRE = 'Space'
      ENDIF
      IF LCGENREID = 45
            LCGENRE = 'Meditative'
      ENDIF
      IF LCGENREID = 46
            LCGENRE = 'Instrumental Pop'
      ENDIF
      IF LCGENREID = 47
            LCGENRE = 'Instrumental Rock'
      ENDIF
      IF LCGENREID = 48
            LCGENRE = 'Ethnic'
      ENDIF
      IF LCGENREID = 49
            LCGENRE = 'Gothic'
      ENDIF
      IF LCGENREID = 50
            LCGENRE = 'Darkwave'
      ENDIF
      IF LCGENREID = 51
            LCGENRE = 'Techno-Industrial'
      ENDIF
      IF LCGENREID = 52
            LCGENRE = 'Electronic'
      ENDIF
      IF LCGENREID = 53
            LCGENRE = 'Pop-Folk'
      ENDIF
      IF LCGENREID = 54
            LCGENRE = 'Eurodance'
      ENDIF
      IF LCGENREID = 55
            LCGENRE = 'Dream'
      ENDIF
      IF LCGENREID = 56
            LCGENRE = 'Southern Rock'
      ENDIF
      IF LCGENREID = 57
            LCGENRE = 'Comedy'
      ENDIF
      IF LCGENREID = 58
            LCGENRE = 'Cult'
      ENDIF
      IF LCGENREID = 59
            LCGENRE = 'Gangsta'
      ENDIF
      IF LCGENREID = 60
            LCGENRE = 'Top 40'
      ENDIF
      IF LCGENREID = 61
            LCGENRE = 'Christian Rap'
      ENDIF
      IF LCGENREID = 62
            LCGENRE = 'Pop/Funk'
      ENDIF
      IF LCGENREID = 63
            LCGENRE = 'Jungle'
      ENDIF
      IF LCGENREID = 64
            LCGENRE = 'Native US'
      ENDIF
      IF LCGENREID = 65
            LCGENRE = 'Cabaret'
      ENDIF
      IF LCGENREID = 66
            LCGENRE = 'New Wave'
      ENDIF
      IF LCGENREID = 67
            LCGENRE = 'Psychadelic'
      ENDIF
      IF LCGENREID = 68
            LCGENRE = 'Rave'
      ENDIF
      IF LCGENREID = 69
            LCGENRE = 'Showtunes'
      ENDIF
      IF LCGENREID = 70
            LCGENRE = 'Trailer'
      ENDIF
      IF LCGENREID = 71
            LCGENRE = 'Lo-Fi'
      ENDIF
      IF LCGENREID = 72
            LCGENRE = 'Tribal'
      ENDIF
      IF LCGENREID = 73
            LCGENRE = 'Acid Punk'
      ENDIF
      IF LCGENREID = 74
            LCGENRE = 'Acid Jazz'
      ENDIF
      IF LCGENREID = 75
            LCGENRE = 'Polka'
      ENDIF
      IF LCGENREID = 76
            LCGENRE = 'Retro'
      ENDIF
      IF LCGENREID = 77
            LCGENRE = 'Musical'
      ENDIF
      IF LCGENREID = 78
            LCGENRE = 'Rock & Roll'
      ENDIF
      IF LCGENREID = 79
            LCGENRE = 'Hard Rock'
      ENDIF
      IF LCGENREID = 80
            LCGENRE = 'Folk'
      ENDIF
      IF LCGENREID = 81
            LCGENRE = 'Folk-Rock'
      ENDIF
      IF LCGENREID = 82
            LCGENRE = 'National Folk'
      ENDIF
      IF LCGENREID = 83
            LCGENRE = 'Swing'
      ENDIF
      IF LCGENREID = 84
            LCGENRE = 'Fast Fusion'
      ENDIF
      IF LCGENREID = 85
            LCGENRE = 'Bebob'
      ENDIF
      IF LCGENREID = 86
            LCGENRE = 'Latin'
      ENDIF
      IF LCGENREID = 87
            LCGENRE = 'Revival'
      ENDIF
      IF LCGENREID = 88
            LCGENRE = 'Celtic'
      ENDIF
      IF LCGENREID = 89
            LCGENRE = 'Bluegrass'
      ENDIF
      IF LCGENREID = 90
            LCGENRE = 'Avantgarde'
      ENDIF
      IF LCGENREID = 91
            LCGENRE = 'Gothic Rock'
      ENDIF
      IF LCGENREID = 92
            LCGENRE = 'Progressive Rock'
      ENDIF
      IF LCGENREID = 93
            LCGENRE = 'Psychedelic Rock'
      ENDIF
      IF LCGENREID = 94
            LCGENRE = 'Symphonic Rock'
      ENDIF
      IF LCGENREID = 95
            LCGENRE = 'Slow Rock'
      ENDIF
      IF LCGENREID = 96
            LCGENRE = 'Big Band'
      ENDIF
      IF LCGENREID = 97
            LCGENRE = 'Chorus'
      ENDIF
      IF LCGENREID = 98
            LCGENRE = 'Easy Listening'
      ENDIF
      IF LCGENREID = 99
            LCGENRE = 'Acoustic'
      ENDIF
      IF LCGENREID = 100
            LCGENRE = 'Humour'
      ENDIF
      IF LCGENREID = 101
            LCGENRE = 'Speech'
      ENDIF
      IF LCGENREID = 102
            LCGENRE = 'Chanson'
      ENDIF
      IF LCGENREID = 103
            LCGENRE = 'Opera'
      ENDIF
      IF LCGENREID = 104
            LCGENRE = 'Chamber Music'
      ENDIF
      IF LCGENREID = 105
            LCGENRE = 'Sonata'
      ENDIF
      IF LCGENREID = 106
            LCGENRE = 'Symphony'
      ENDIF
      IF LCGENREID = 107
            LCGENRE = 'Booty Bass'
      ENDIF
      IF LCGENREID = 108
            LCGENRE = 'Primus'
      ENDIF
      IF LCGENREID = 109
            LCGENRE = 'Porn Groove'
      ENDIF
      IF LCGENREID = 110
            LCGENRE = 'Satire'
      ENDIF
      IF LCGENREID = 111
            LCGENRE = 'Slow Jam'
      ENDIF
      IF LCGENREID = 112
            LCGENRE = 'Club'
      ENDIF
      IF LCGENREID = 113
            LCGENRE = 'Tango'
      ENDIF
      IF LCGENREID = 114
            LCGENRE = 'Samba'
      ENDIF
      IF LCGENREID = 115
            LCGENRE = 'Folklore'
      ENDIF
      IF LCGENREID = 116
            LCGENRE = 'Ballad'
      ENDIF
      IF LCGENREID = 117
            LCGENRE = 'Power Ballad'
      ENDIF
      IF LCGENREID = 118
            LCGENRE = 'Rhytmic Soul'
      ENDIF
      IF LCGENREID = 119
            LCGENRE = 'Freestyle'
      ENDIF
      IF LCGENREID = 120
            LCGENRE = 'Duet'
      ENDIF
      IF LCGENREID = 121
            LCGENRE = 'Punk Rock'
      ENDIF
      IF LCGENREID = 122
            LCGENRE = 'Drum Solo'
      ENDIF
      IF LCGENREID = 123
            LCGENRE = 'Acapella'
      ENDIF
      IF LCGENREID = 124
            LCGENRE = 'Euro-House'
      ENDIF
      IF LCGENREID = 125
            LCGENRE = 'Dance Hall'
      ENDIF
      IF LCGENREID = 126
            LCGENRE = 'Goa'
      ENDIF
      IF LCGENREID = 127
            LCGENRE = 'Drum & Bass'
      ENDIF
      IF LCGENREID = 128
            LCGENRE = 'Club-House'
      ENDIF
      IF LCGENREID = 129
            LCGENRE = 'Hardcore'
      ENDIF
      IF LCGENREID = 130
            LCGENRE = 'Terror'
      ENDIF
      IF LCGENREID = 131
            LCGENRE = 'Indie'
      ENDIF
      IF LCGENREID = 132
            LCGENRE = 'BritPop'
      ENDIF
      IF LCGENREID = 133
            LCGENRE = 'Negerpunk'
      ENDIF
      IF LCGENREID = 134
            LCGENRE = 'Polsk Punk'
      ENDIF
      IF LCGENREID = 135
            LCGENRE = 'Beat'
      ENDIF
      IF LCGENREID = 136
            LCGENRE = 'Christian Gangsta Rap'
      ENDIF
      IF LCGENREID = 137
            LCGENRE = 'Heavy Metal'
      ENDIF
      IF LCGENREID = 138
            LCGENRE = 'Black Metal'
      ENDIF
      IF LCGENREID = 139
            LCGENRE = 'Crossover'
      ENDIF
      IF LCGENREID = 140
            LCGENRE = 'Contemporary Christian'
      ENDIF
      IF LCGENREID = 141
            LCGENRE = 'Christian Rock'
      ENDIF
      IF LCGENREID = 142
            LCGENRE = 'Merengue'
      ENDIF
      IF LCGENREID = 143
            LCGENRE = 'Salsa'
      ENDIF
      IF LCGENREID = 144
            LCGENRE = 'Trash Metal'
      ENDIF
      IF LCGENREID = 145
            LCGENRE = 'Anime'
      ENDIF
      IF LCGENREID = 146
            LCGENRE = 'Jpop'
      ENDIF
      IF LCGENREID = 147
            LCGENRE = 'Synthpop'
      ENDIF

ENDFUNC
Regards N Mc Donald
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform