/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Læse/skrive ID3v1 tags i MP3 fil
Fra : K.L.


Dato : 03-03-01 14:10

Hej

Er det muligt at læse/skrive fra/i ID3v1 tag'et i en MP3 fil i VB6.0.
Evt via en ActiveX Control eller API via DLL ??

På forhånd tak.

/Kim

 
 
Christian R. Larsen (03-03-2001)
Kommentar
Fra : Christian R. Larsen


Dato : 03-03-01 18:23

"K.L." <vespertilio@hotmail.com> wrote in message
news:3so1atcj2c5imoe670uuef0mso8ichf4jl@4ax.com...
> Hej
>
> Er det muligt at læse/skrive fra/i ID3v1 tag'et i en MP3 fil i VB6.0.

Ja, tagget ligger i de sidste 128 bytes af filen i alm. tekstformat, og du
kan se, om der er et tag, ved at checke, om de første 3 bytes danner ordet
"TAG".









Gundersen (03-03-2001)
Kommentar
Fra : Gundersen


Dato : 03-03-01 22:47

Hej


> Ja, tagget ligger i de sidste 128 bytes af filen i alm. tekstformat, og du
> kan se, om der er et tag, ved at checke, om de første 3 bytes danner ordet
> "TAG".

Hvordan er det lige man gør det?

Hvor ligger ID3 ver 2 så?

Mvh emil

--
www.Scooter-Area.subnet.dk
Husk at fjerne:<-slet dette!->
fra min e-mail adresse!



Christian R. Larsen (04-03-2001)
Kommentar
Fra : Christian R. Larsen


Dato : 04-03-01 20:18

"Gundersen @e-box.dk>" <"Gundersen<-slet dette!-> wrote in message
news:3AA1666D.96C2E228@e-box.dk...
> Hej
>
>
> > Ja, tagget ligger i de sidste 128 bytes af filen i alm. tekstformat, og
du
> > kan se, om der er et tag, ved at checke, om de første 3 bytes danner
ordet
> > "TAG".
>
> Hvordan er det lige man gør det?

MyFileNumber = FreeFile
Open Filename For Binary Access Read As MyFileNumber
ID3Tagv1 = String(128, " ")
Filelen = LOF(MyFileNumber)
Get MyFileNumber, Filelen - 127, ID3Tagv1
Close MyFileNumber

If Mid(ID3Tagv1, 1, 3) = "TAG" Then
!ID3v1_tagged = True
'!Id3v1_SongName = " "
'!Id3v1_Artist = " "
'!Id3v1_Album = " "
'!Id3v1_Year = " "
'!Id3v1_Comment = " "
Counter = 30
Do
Counter = Counter - 1
Loop Until Counter = 0 Or Asc(Mid(ID3Tagv1, 4 + Counter, 1))
> 32
If Counter <> 0 Then !Id3v1_SongName = Mid(ID3Tagv1, 4,
Counter + 1)

Counter = 30
Do
Counter = Counter - 1
Loop Until Counter = 0 Or Asc(Mid(ID3Tagv1, 34 + Counter,
1)) > 32
If Counter <> 0 Then !Id3v1_Artist = Mid(ID3Tagv1, 34,
Counter + 1)

Counter = 30
Do
Counter = Counter - 1
Loop Until Counter = 0 Or Asc(Mid(ID3Tagv1, 64 + Counter,
1)) > 32
If Counter <> 0 Then !Id3v1_Album = Mid(ID3Tagv1, 64,
Counter + 1)

Counter = 4
Do
Counter = Counter - 1
Loop Until Counter = 0 Or Asc(Mid(ID3Tagv1, 94 + Counter,
1)) > 32
If Counter <> 0 Then !Id3v1_Year = Mid(ID3Tagv1, 94, Counter
+ 1)

Counter = 28
Do
Counter = Counter - 1
Loop Until Counter = 0 Or Asc(Mid(ID3Tagv1, 98 + Counter,
1)) > 32
If Counter <> 0 Then !Id3v1_Comment = Mid(ID3Tagv1, 98,
Counter + 1)
!Id3v1_Track = CStr(Asc(Mid(ID3Tagv1, 127, 1)))
If Asc(Mid(ID3Tagv1, 127, 1)) = 0 Then !Id3v1_Track = " "

End If

> Hvor ligger ID3 ver 2 så?

Det ligger i starten af filen, og er noget mere kompliceret at læse.

For det første er der flere sub-versioner af v2, og for det andet er der den
væsentlige forskel, at et v2-tag er langt mere fleksibelt. Det er opbygget
af såkalfte frames, der hver især indeholder en bestemt type info. En frame
kan indeholde et ikon for filen eller endog et billede.

Syntaxen er her, at der først er en header, hvis første tre bytes mestår af
ordet "ID3".

Den fjerde byte fortæller, hvilken subversion, der er tale om.

En frame starter med tre gegn, der fortæller noget om denne frames formål.
Det kan til eksempel være bogstaverne TRK, der fortæller, hvilket
track-nummer på albummet, sangen har. Der er hundredevis af forskellige
frames, og det smarte er, at de for det første har fleksibel længde, og for
det andet ikke alle behøver at være i filen. Så dit id3v2-tag har altså ikke
fast længde.

Jeg kan i øvrigt anbefale www.id3.org for en mere dybdegående af de
forskellige versioner.



Gundersen (04-03-2001)
Kommentar
Fra : Gundersen


Dato : 04-03-01 20:57

Takker!

Mvh emil

"Christian R. Larsen" wrote:

> "Gundersen @e-box.dk>" <"Gundersen<-slet dette!-> wrote in message
> news:3AA1666D.96C2E228@e-box.dk...
> > Hej
> >
> >
> > > Ja, tagget ligger i de sidste 128 bytes af filen i alm. tekstformat, og
> du
> > > kan se, om der er et tag, ved at checke, om de første 3 bytes danner
> ordet
> > > "TAG".
> >
> > Hvordan er det lige man gør det?
>
> MyFileNumber = FreeFile
> Open Filename For Binary Access Read As MyFileNumber
> ID3Tagv1 = String(128, " ")
> Filelen = LOF(MyFileNumber)
> Get MyFileNumber, Filelen - 127, ID3Tagv1
> Close MyFileNumber
>
> If Mid(ID3Tagv1, 1, 3) = "TAG" Then
> !ID3v1_tagged = True
> '!Id3v1_SongName = " "
> '!Id3v1_Artist = " "
> '!Id3v1_Album = " "
> '!Id3v1_Year = " "
> '!Id3v1_Comment = " "
> Counter = 30
> Do
> Counter = Counter - 1
> Loop Until Counter = 0 Or Asc(Mid(ID3Tagv1, 4 + Counter, 1))
> > 32
> If Counter <> 0 Then !Id3v1_SongName = Mid(ID3Tagv1, 4,
> Counter + 1)
>
> Counter = 30
> Do
> Counter = Counter - 1
> Loop Until Counter = 0 Or Asc(Mid(ID3Tagv1, 34 + Counter,
> 1)) > 32
> If Counter <> 0 Then !Id3v1_Artist = Mid(ID3Tagv1, 34,
> Counter + 1)
>
> Counter = 30
> Do
> Counter = Counter - 1
> Loop Until Counter = 0 Or Asc(Mid(ID3Tagv1, 64 + Counter,
> 1)) > 32
> If Counter <> 0 Then !Id3v1_Album = Mid(ID3Tagv1, 64,
> Counter + 1)
>
> Counter = 4
> Do
> Counter = Counter - 1
> Loop Until Counter = 0 Or Asc(Mid(ID3Tagv1, 94 + Counter,
> 1)) > 32
> If Counter <> 0 Then !Id3v1_Year = Mid(ID3Tagv1, 94, Counter
> + 1)
>
> Counter = 28
> Do
> Counter = Counter - 1
> Loop Until Counter = 0 Or Asc(Mid(ID3Tagv1, 98 + Counter,
> 1)) > 32
> If Counter <> 0 Then !Id3v1_Comment = Mid(ID3Tagv1, 98,
> Counter + 1)
> !Id3v1_Track = CStr(Asc(Mid(ID3Tagv1, 127, 1)))
> If Asc(Mid(ID3Tagv1, 127, 1)) = 0 Then !Id3v1_Track = " "
>
> End If
>
> > Hvor ligger ID3 ver 2 så?
>
> Det ligger i starten af filen, og er noget mere kompliceret at læse.
>
> For det første er der flere sub-versioner af v2, og for det andet er der den
> væsentlige forskel, at et v2-tag er langt mere fleksibelt. Det er opbygget
> af såkalfte frames, der hver især indeholder en bestemt type info. En frame
> kan indeholde et ikon for filen eller endog et billede.
>
> Syntaxen er her, at der først er en header, hvis første tre bytes mestår af
> ordet "ID3".
>
> Den fjerde byte fortæller, hvilken subversion, der er tale om.
>
> En frame starter med tre gegn, der fortæller noget om denne frames formål.
> Det kan til eksempel være bogstaverne TRK, der fortæller, hvilket
> track-nummer på albummet, sangen har. Der er hundredevis af forskellige
> frames, og det smarte er, at de for det første har fleksibel længde, og for
> det andet ikke alle behøver at være i filen. Så dit id3v2-tag har altså ikke
> fast længde.
>
> Jeg kan i øvrigt anbefale www.id3.org for en mere dybdegående af de
> forskellige versioner.

--
www.Scooter-Area.subnet.dk
Husk at fjerne:<-slet dette!->
fra min e-mail adresse!



Jens Rex Bræmhøj (06-03-2001)
Kommentar
Fra : Jens Rex Bræmhøj


Dato : 06-03-01 01:06

On Sun, 04 Mar 2001 20:57:07 +0100, Gundersen wrote:

>Takker!

Hej Emil. Gør dig selv, og andre, en tjeneste ved at læse:

http://usenet.dk/netikette/quote.html

Venlig hilsen...
   - Jens R. B.

Søg
Reklame
Statistik
Spørgsmål : 177551
Tips : 31968
Nyheder : 719565
Indlæg : 6408825
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste