kostenloser Webspace werbefrei: lima-city


Informationen in ID3Tag verändern?

lima-cityForumProgrammiersprachenDelphi & Pascal

  1. Autor dieses Themas

    jackdanielz

    Kostenloser Webspace von jackdanielz

    jackdanielz hat kostenlosen Webspace.

    Ahoi an alle!
    Ich schreibe gerade an einem Programm, dass mit helfen soll meine .mp3 datein zu verwalten. Dazu will ich auf schnelle Art und Weise den Interpreten, Titel, tag/album">Album und den ganzen bla bla ändern. Bloss jetzt ist die Frage wie mach ich das?
    Ich habe bereits einen ganz guten Quellcode gefunden der es mir erlaubt den ID3Tag auszulesen, allerdings weiß ich jetzt immer noch nicht wie ich ihn benutze um die jeweiligen Informationen in den Tag reinzuschreiben. Kann mir jemand vielleicht weiterhelfen, vorallem da ich den Code nicht zu 100% versteh.
    Vielen Dank schonmal für eure Hilfe und hier kommt erstmal der Code:
    type
      TID3Tag = record
        ID: string[3];
        Titel: string[30];
        Artist: string[30];
        Album: string[30];
        Year: string[4];
        Comment: string[30];
        Genre: Byte;
      end;
    
    const
    Genres : array[0..146] of string =
        ('Blues','Classic Rock','Country','Dance','Disco','Funk','Grunge',
        'Hip- Hop','Jazz','Metal','New Age','Oldies','Other','Pop','R&B',
        'Rap','Reggae','Rock','Techno','Industrial','Alternative','Ska',
        'Death Metal','Pranks','Soundtrack','Euro-Techno','Ambient',
        'Trip-Hop','Vocal','Jazz+Funk','Fusion','Trance','Classical',
        'Instrumental','Acid','House','Game','Sound Clip','Gospel','Noise',
        'Alternative Rock','Bass','Punk','Space','Meditative','Instrumental Pop',
        'Instrumental Rock','Ethnic','Gothic','Darkwave','Techno-Industrial','Electronic',
        'Pop-Folk','Eurodance','Dream','Southern Rock','Comedy','Cult','Gangsta',
        'Top 40','Christian Rap','Pop/Funk','Jungle','Native US','Cabaret','New Wave',
        'Psychadelic','Rave','Showtunes','Trailer','Lo-Fi','Tribal','Acid Punk',
        'Acid Jazz','Polka','Retro','Musical','Rock & Roll','Hard Rock','Folk',
        'Folk-Rock','National Folk','Swing','Fast Fusion','Bebob','Latin','Revival',
        'Celtic','Bluegrass','Avantgarde','Gothic Rock','Progressive Rock',
        'Psychedelic Rock','Symphonic Rock','Slow Rock','Big Band','Chorus',
        'Easy Listening','Acoustic','Humour','Speech','Chanson','Opera',
        'Chamber Music','Sonata','Symphony','Booty Bass','Primus','Porn Groove',
        'Satire','Slow Jam','Club','Tango','Samba','Folklore','Ballad',
        'Power Ballad','Rhytmic Soul','Freestyle','Duet','Punk Rock','Drum Solo',
        'Acapella','Euro-House','Dance Hall','Goa','Drum & Bass','Club-House',
        'Hardcore','Terror','Indie','BritPop','Negerpunk','Polsk Punk','Beat',
        'Christian Gangsta','Heavy Metal','Black Metal','Crossover','Contemporary C',
        'Christian Rock','Merengue','Salsa','Thrash Metal','Anime','JPop','SynthPop');
    
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    function readID3Tag(FileName: string): TID3Tag;
    var
      FS: TFileStream;
      Buffer: array [1..128] of Char;
    begin
      FS := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
      try
        FS.Seek(-128, soFromEnd);
        FS.Read(Buffer, 128);
        with Result do
        begin
          ID := Copy(Buffer, 1, 3);
          Titel := Copy(Buffer, 4, 30);
          Artist := Copy(Buffer, 34, 30);
          Album := Copy(Buffer, 64, 30);
          Year := Copy(Buffer, 94, 4);
          Comment := Copy(Buffer, 98, 30);
          Genre := Ord(Buffer[128]);
        end;
      finally
        FS.Free;
      end;
    end;
    
    procedure TfrmMain.Button1Click(Sender: TObject);
    begin
      if OpenDialog1.Execute then
      begin
        with readID3Tag(OpenDialog1.FileName) do
        begin
          LlbID.Caption := 'ID: ' + ID;
          LlbTitel.Caption := 'Titel: ' + Titel;
          LlbArtist.Caption := 'Artist: ' + Artist;
          LlbAlbum.Caption := 'Album: ' + Album;
          LlbYear.Caption := 'Year: ' + Year;
          LlbComment.Caption := 'Comment: ' + Comment;
          if (Genre >= 0) and (Genre <=146) then
           LlbGenre.Caption := 'Genre: ' + Genres[Genre]
          else
           LlbGenre.Caption := 'N/A';
        end;
      end;
    end;

    P.S.: Ich muss nicht unbediengt diesen Code verwenden, bin da ziemlich flexible.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. burgi

    Co-Admin Kostenloser Webspace von burgi

    burgi hat kostenlosen Webspace.

    Ich würde mir einfach auf einer geeigneten Seite eine vorgefertigte Komponente dafür suchen, wie z.B. diese hier:
    http://www.torry.net/vcl/mmedia/other/mp3tag.zip

    Features:

    * Reads a tag from an MP3 file
    * Removes a tag from an MP3 file
    * Saves a tag to an MP3 file even if the file does not contain a tag in which case it adds a tag to the file
    * Built in Tag Editor
    * Custom events that alert you of errors, data that changed or when the filename changed.

    Fully functional
    Source: Included


    Kosten: keine
  4. Autor dieses Themas

    jackdanielz

    Kostenloser Webspace von jackdanielz

    jackdanielz hat kostenlosen Webspace.

    Ja auf dieser Seite war ich auch schon und hab mit auf schon die vorgefertigte Komponente runtergeladen und weng damit rum experimentiert. Aber zum einen versteh ich trotzdem nicht so wirklich wie ich sie nutzen soll. Zum anderen funktioniert nicht alles bei mir, da mein Delphi (version 6) nicht alles kennt. So z.B. die Units: ScrollLabel und DsgnIntF.
    Und da ich den code nicht ganz verstehe weiß ich auch nicht wie ich die probleme beheben soll.
    Kennt niemand eine einfache möglichkeit oder kann mir eine schwere erklären. Bin echt weng langsam auf diesem Gebiet.
  5. c****s

    Wenn Du Probleme mit der runtergeladenen Library hast, warum schreibst du dir den Parser net selbst?
    Bevor du dich noch ne Woche mit dem 3rd-Party-Code rumärgerst, hast du das auch selbst geschrieben.
    Ich hab mir grad mal die Spezifikation von ID3v2.3.0 angesehen und die ist schön straight-forward ohne irgendwas wildes.

    Hier bitte die Spek: http://www.id3.org/id3v2.3.0#head-0ef7011e13ae8b3678a676a65b64760b9cedf1de
  6. Autor dieses Themas

    jackdanielz

    Kostenloser Webspace von jackdanielz

    jackdanielz hat kostenlosen Webspace.

    Woha, des wird ein Haufen arbeit für mich, wobei ich mich höchstens als fortgeschrittener Delphianfänger bezeichnen würde, aber ich versuchs mal. Danke für den Link, hilft mir denk ich schon weiter!
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!