Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi id3 Tags setzten funktioniert nur bedingt... (https://www.delphipraxis.net/80932-id3-tags-setzten-funktioniert-nur-bedingt.html)

hibbert 17. Nov 2006 16:14


id3 Tags setzten funktioniert nur bedingt...
 
hi,
ich bin gerade dabei mir ein kleines Tool zur MP3 Verwaltung zu schreiben und dabei möchte ich gerne die ID3 Tags setzten. Dafür habe ich mir folgende kleine Procedur zurecht geschnippelt:
Delphi-Quellcode:
procedure SaveMP3File(AFile, ATitle, AArtist, AAlbum, AGenre,AYear,ATrack: String);
var
  MyId3v1Tag: TID3v1Tag;
  MyId3v2Tag: TID3v2Tag;
begin

  MyId3v1Tag := TID3v1Tag.Create;
  if form1.CheckBox2.Checked then MyId3v2Tag := TID3v2Tag.Create;

  try
     form1.Lblv1Artist.Text:=AArtist;
     form1.Lblv1Titel.Text:=ATitle;

    if form1.CheckBox2.Checked then
    begin
      MyId3v2Tag.Title  := ATitle;
      MyId3v2Tag.Artist := AArtist;
      MyId3v2Tag.Album  := AAlbum;
      MyId3v2Tag.Genre  := AGenre;
      MyId3v2Tag.Year   := AYear;
      MyId3v2tag.Track  := ATrack;
      MyId3v2Tag.Comment := form1.Lblv1Comment.Text;
    end;

    MyId3v1Tag.Title  := ATitle;
    MyId3v1Tag.Artist := AArtist;
    MyId3v1Tag.Album  := AAlbum;
    MyId3v1Tag.Genre  := AGenre;
    MyId3v1Tag.Year   := AYear;
    MyId3v1tag.Track  := ATrack;
    MyId3v1Tag.Comment := form1.Lblv1Comment.Text;

    // schreibgeschütze MP3 werden so ebenfalls geändert, weil der schreibschutz aufgehoben wird
    if (FileGetAttr(aFile) and faReadOnly) > 0 then FileSetAttr(afile, FileGetAttr(afile) xor faReadOnly);

    MyId3v1Tag.WriteToFile(aFile);
    if form1.CheckBox2.Checked then MyId3v2Tag.WriteToFile(aFile);

  finally
    if form1.CheckBox2.Checked then MyId3v2Tag.free;
    MyId3v1Tag.free;
  end;
end;
Nun habe ich folgendes Problem:
Einige MP3-Dateien haben bereits ID3 Tags. Doch nicht bei allen MP3-Dateien werden die Tags geupdatet. Höchstens wenn ich den ID3v2Tag verwende, aber das dauert mir teilw. echt zu lange bzw da passiert genau das gleiche...

Dazu kommt noch, dass der Kommentar nicht übernommen wird.

Auch wenn ich vorher die ID3Tags entferne
Delphi-Quellcode:
MyId3v2Tag.RemoveFromFile(AFile);
bleibt das Ergebnis das gleiche, nur teilw. ersetzungen... :cry:

Meine Fragen nun:
• Wie kann ich wirklich alle MP3 Dateien updaten?
• Wie bekomme ich es hin, dass auch der Kommentar mit übernommen wird?

Vielen dank.

MfG Hibbert

Muetze1 17. Nov 2006 18:26

Re: id3 Tags setzten funktioniert nur bedingt...
 
[quote="hibbertEinige MP3-Dateien haben bereits ID3 Tags. Doch nicht bei allen MP3-Dateien werden die Tags geupdatet. Höchstens wenn ich den ID3v2Tag verwende, aber das dauert mir teilw. echt zu lange bzw da passiert genau das gleiche...[/quote]

Wie erkennst du dies, dass die Tags nicht geupdatet werden? Winamp und andere Player ignorieren beispielsweise den ID3v1.x Tag, wenn es einen ID3v2 Tag gibt, da dieser längere und genauere Informationen zulässt.

Ansonsten sollte diese Lib und ihrem Easy Interface gleiches bieten.

hibbert 17. Nov 2006 22:28

Re: id3 Tags setzten funktioniert nur bedingt...
 
Zitat:

Zitat von Muetze1
Wie erkennst du dies, dass die Tags nicht geupdatet werden?

rechtsklick > eigenschaften....

Muetze1 17. Nov 2006 22:31

Re: id3 Tags setzten funktioniert nur bedingt...
 
Zitat:

Zitat von hibbert
Zitat:

Zitat von Muetze1
Wie erkennst du dies, dass die Tags nicht geupdatet werden?

rechtsklick > eigenschaften....

Da wird bei mir so oder so nichts angezeigt. Dies muss eine Explorer-Erweiterung sein von einem installierten Programm. Nun ist die Frage: zeigt er vllt. auch wiederrum nur die ID3v2 Tags an, wenn vorhanden und nur wenn nicht die ID3v1 Tags?

hibbert 18. Nov 2006 12:44

Re: id3 Tags setzten funktioniert nur bedingt...
 
hi,
auch wenn ich die ID3v2 Tags update werden keine Kommentare geschrieben :(
Der Rest wird aber geupdated dauert aber sehr lange, also wesentlich länger als die ID3v1 Tags...

hibbert

Muetze1 18. Nov 2006 18:43

Re: id3 Tags setzten funktioniert nur bedingt...
 
Zitat:

Zitat von hibbert
Der Rest wird aber geupdated dauert aber sehr lange, also wesentlich länger als die ID3v1 Tags...

Was logisch ist, schliesslich sind die ID3v1 Tags hinten in der Datei und die ID3v2 Tags ganz vorne. Wenn die grösser werden, muss die gesamte Datei umkopiert werden.

Schonmal meine oben verlinkte Lib ausprobiert mit dem Easy Interface? Dieses offeriert dir genauo den selben Funktionsrumpf wie du ihn oben geschrieben hattest.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:17 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz