Titolo: Leggere i tag ID3 di un file MP3
Categoria: Codice |
|
Ultimo Aggiornamento: 24/10/05 |
Tutto quello che serve per ascoltare un file MP3 è un lettore di file MP3! All'interno di questi file sono celate delle informazioni suppletive sul brano.
Un esempio di struttura di tali tag:
000-002 03 bytes TAG ID -> "TAG"
003-032 30 bytes Titolo del brano
033-062 30 bytes Nome dell'interprete
063-092 30 bytes Album
093-096 04 bytes Anno
097-127 30 bytes Commenti
128-128 01 byte Tipo
Utilizzando i comandi Open document, SET DOCUMENT POSITION e RECEIVE PACKET possiamo scriverci un metodo che inserisce in un array (passato come secondo parametro) i tag ID3 di un file MP3 (il cui percorso completo viene passato come primo parametro).
C_TEXT($1) `percorso del file
C_POINTER($2) `puntatore all'array con 7 posti che riceve i tag
C_TEXT($MyText)
C_STRING(3;$Tag)
C_LONGINT($MyOffset)
$RefDoc:=
Open document($1;"")
If (ok=1)
`Leggo gli ultimi 128 bytes del file MP3
SET DOCUMENT POSITION($RefDoc;-128;2)
RECEIVE PACKET($RefDoc;$MyText;500)
CLOSE DOCUMENT($RefDoc)
$Tag:=$MyText[[1]]+$MyText[[2]]+$MyText[[3]]
If ($Tag="TAG") `c'è un tag MP3
$2->{1}:=
EliminaSpazi (
Substring($MyText;4;30))
$2->{2}:=
EliminaSpazi (
Substring($MyText;34;30))
$2->{3}:=
EliminaSpazi (
Substring($MyText;64;30))
$2->{4}:=
EliminaSpazi (
Substring($MyText;94;4))
$2->{5}:=
EliminaSpazi (
Substring($MyText;98;30))
If ((
Ascii(
Substring($MyText;128;1))+1)<=Size of array(<>tType))
$2->{6}:=<>tType{
Ascii(
Substring($MyText;128;1))+1}
End if Else ALERT("No MP3 Tag.")
End if $2->{7}:=$1
End if Il metodo EliminaSpazi si trova
in questa faq.
Inviato da: PierPaolo Sichera |
|
Visite: 12833 |
Se accedi con utente e password, puoi aggiungere dei commenti.