Avatar billede centauri Nybegynder
04. august 2000 - 23:43 Der er 3 kommentarer og
1 løsning

ID3 tage udlæsning

Er der nogen der har noget kode til udlæsning af ID3 Tags fra MP3 filer.
Jeg skal nemlig bruge det til at udlæse det far filer med og skive det ud på et LCD Display.
Det skal være noget der kan køre under DOS og det skal være sådan at den bare skal have et input som er filnavnet og så skal den kunne give et output som er tingene fra ID3 Taget.

Og hvsi det er en størrere opgave kan jeg sagtens førhøje Pointene, da jeg ikke aner noget om hvor svært det er.
Avatar billede rm Nybegynder
05. august 2000 - 01:22 #1
http://www.id3.org/

her er alt du skal bruge
Avatar billede devia Nybegynder
05. august 2000 - 03:24 #2
Er følgende acceptabelt?
Genre feltet er angivet som en byte værdi og der skal derfor oprettes en tabel med alle genre i, man skal slå op i.

#include <stdio.h>
#include <string.h>
#include <iostream.h>

void main(int argc, char **argv)
{
    FILE    *fp;
    char    title[30],artist[30],album[30],year[4],comment[30], *s;
    short    genre;
   
    if(argc>1)
    {
        fp=fopen(argv[1], \"r\");
        if(fp)
        {
            if((fseek(fp, -129, 2)==0)&&(strcmp((const char *)fp, \"TAG\")==0))
            {
                s=(char *)fp;
                s+=3;
                strcpy(title, s);
                strcpy(artist, s+30);
                strcpy(album, s+30+30);
                strcpy(year, s+30+30+30);
                strcpy(comment, s+30+30+30+4);
                genre=*s+30+30+30+4+30;
               
                cout << \"Artist : \" << artist << \"\\n\";
                cout << \"Title  : \" << title << \"\\n\";
                cout << \"Album  : \" << album << \"\\n\";
                cout << \"Year  : \" << year << \"\\n\";
                cout << \"Comment: \" << comment << \"\\n\";
            }
            else
            {
                cout << \"Error: ID3 Tag not found in \" << argv[1] << \"\\n\";
            }
            fclose(fp);
        }
        else
        {
            cout << \"Error: Unable to open \" << argv[1] << \"\\n\";
        }
    }
    else
    {
        cout << \"Usage: SHOWID3TAG <filename>\\n\";
    }
}

Avatar billede devia Nybegynder
05. august 2000 - 04:38 #3
hehe.. var vist lidt fuld da jeg lavede det første svar =)
Her er en der meget gerne skulle VIRKE! =)
..men altså stadig uden Genre, men skal du bruge det?

#include <stdio.h>
#include <string.h>
#include <iostream.h>

void main(int argc, char **argv)
{
    FILE    *fp;
    char    title[32],artist[32],album[32],year[6],comment[32], *s;
   
    if(argc>1)
    {
        fp=fopen(argv[1], \"r\");
        if(fp)
        {
            if((fseek(fp, -128, 2)==0)&&(strcmp(fgets(title,4,fp),\"TAG\")==0))
            {
                fgets(title, 31, fp);
                fgets(artist, 31, fp);
                fgets(album, 31, fp);
                fgets(year, 5, fp);
                fgets(comment, 31, fp);
               
                cout << \"Artist : \" << artist << \"\\n\";
                cout << \"Title  : \" << title << \"\\n\";
                cout << \"Album  : \" << album << \"\\n\";
                cout << \"Year  : \" << year << \"\\n\";
                cout << \"Comment: \" << comment << \"\\n\";
            }
            else
            {
                cout << \"Error: ID3 Tag not found in \" << argv[1] << \"\\n\";
            }
            fclose(fp);
        }
        else
        {
            cout << \"Error: Unable to open \" << argv[1] << \"\\n\";
        }
    }
    else
    {
        cout << \"Usage: SHOWID3TAG <filename>\\n\";
    }
}
Avatar billede devia Nybegynder
05. august 2000 - 04:40 #4
oops! =) ... s variablen bli\'r vist ikke brugt =)
..nå ja, en enkelt warning er vel til at leve med? ..ellers slet den =)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester