Delphi-PRAXiS
Seite 2 von 3     12 3   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi ID3v1-Tag, ID3v2-Tag und MPEG-Header einer MP3 auslesen (https://www.delphipraxis.net/54063-id3v1-tag-id3v2-tag-und-mpeg-header-einer-mp3-auslesen.html)

leddl 27. Sep 2005 12:58

Re: ID3v1-Tag, ID3v2-Tag und MPEG-Header einer MP3 auslesen
 
Zitat:

Zitat von Luckie
Warum eigentlich zwei Klasse für die Tag-Versionen? Wie soll man denn das jetzt anwenden? Erst mit der einen versuchen die Tags auszulesen und wenn das nicht klappt mit der anderen? Warum nicht eine Klasse die die Tag-Version bestimmt und dann entsprechend die Tags ausliest?

Beim Lesen wäre das was du sagst in Ordnung, wenn du aber Informationen schreiben willst, sollte so eine Unterscheidung schon da sein.

Muetze1 27. Sep 2005 13:07

Re: ID3v1-Tag, ID3v2-Tag und MPEG-Header einer MP3 auslesen
 
Hinweis: Der ID3v2 Code verhält sich falsch, wenn eine Exception beim Schreiben auftritt: der Stream wird niemals geschlossen. Nutze Try / Finally um die Streams ordentlich zu schliessen, dann kannst du sie auch löschen.

Luckie 27. Sep 2005 13:09

Re: ID3v1-Tag, ID3v2-Tag und MPEG-Header einer MP3 auslesen
 
Beim Schreiben sollte die Klasse natürlich automatisch die richtige Tag-Version nehmen, wenn schon Daten vorhanden sind und wenn nicht eben die Version, die man als Standard angibt und / oder man gibt eine Tag-Version beim Schreiben vor und wenn schon Tags einer der anderen Version vorhanden sind, werden diese mit der vorgegebenen Version neu geschrieben.

leddl 27. Sep 2005 13:16

Re: ID3v1-Tag, ID3v2-Tag und MPEG-Header einer MP3 auslesen
 
Ich hab mir jetzt den Code hier nicht ganz so genau angeschaut, aber bei der TMEPGAudio war es so, daß die ID3v1- und ID3v2- Klassen Properties der Hauptklasse waren. Und die beiden hatten jeweils eine Property "TagExists" oder so ähnlich. So konnte man recht schnell herausfinden, wo man schreiben/lesen mußte/sollte/konnte.
Aus Gründen der Abwärtskompatibiliät finde ich das absolut in Ordnung, dem Nutzer absolut freie Hand zu geben, welche Tags er lesen/schreiben will. Allerdings braucht es dann natürlich auch entsprechende Properties und Funktionen.

//Edit:
Ok, das is ja hier ähnlich. Wo is dann das Problem, Luckie?
Delphi-Quellcode:
if id3v1.Exists then
  //Lesen aus id3v1-Tag
else
if id3v2.Exists then
  //Lesen aus id3v2-Tag
else
  //nix wird gelesen

Luckie 27. Sep 2005 13:25

Re: ID3v1-Tag, ID3v2-Tag und MPEG-Header einer MP3 auslesen
 
Zitat:

Zitat von leddl
Aus Gründen der Abwärtskompatibiliät finde ich das absolut in Ordnung, dem Nutzer absolut freie Hand zu geben, welche Tags er lesen/schreiben will. Allerdings braucht es dann natürlich auch entsprechende Properties und Funktionen.

Diese Funktionalität könnte man dem Benutzer auch mit einer Klasse geben, wie ich oben schon ausgeführt habe.

leddl 27. Sep 2005 13:29

Re: ID3v1-Tag, ID3v2-Tag und MPEG-Header einer MP3 auslesen
 
Aber ich finde es für den Benutzer schon sehr angenehm, wenn er selbst Einfluss hat und das nicht der Klasse überlassen muß. Zur Not kann man sich das ganze ja noch recht schnell mit dieser Funktionalität erweitern. Wenn aber alles darauf ausgerichtet ist, dürfte es relativ schwer sein, wieder zu so einer Trennung der Tag-Varianten zurückzukommen. Insofern ist das meiner Meinung nach absolut in Ordnung so. ;)

bigg 27. Sep 2005 13:32

Re: ID3v1-Tag, ID3v2-Tag und MPEG-Header einer MP3 auslesen
 
moin,

sollte doch von hier sein :zwinker:
http://mac.sourceforge.net/

Flocke 27. Sep 2005 13:32

Re: ID3v1-Tag, ID3v2-Tag und MPEG-Header einer MP3 auslesen
 
Zitat:

Zitat von Alex_ITA01
Ich habe auch nirgendwo gesagt, dass alles selber programmiert ist.Ich weiß nur ehrlich nicht mehr, woher ich sie habe.Aber ich weiß garantiert, dass ich kein Copyright verletzt habe bzw. gelöscht habe.

Das habe ich ja auch nicht behauptet - der Autor kann den Copyright-Hinweis, die Kommentare und die anderen Änderungen ja zu einem späteren Zeitpunkt hinzugefügt haben.

Was ich sagen wollte ist, dass in deinem Code keine Codezeile neu ist!
(kannst dir ja beides mal mit KDiff3 ansehen)

Du kannst also ebenso gut die Unit aus Matzes Links nehmen, zumal da einige Korrekturen drin sind (so geht z.B. SaveTag ohne vorheriges RemoveTag). Die top-aktuelle Version der Datei findest du übrigens unter http://mac.sourceforge.net/atl/.

Alex_ITA01 28. Sep 2005 07:12

Re: ID3v1-Tag, ID3v2-Tag und MPEG-Header einer MP3 auslesen
 
Guten Morgen erstmal,
ich möchte jetzt mal folgendes dazu sagen:
1) Es ist nirgendwo ein Copyright (außer auf die ID3v1.pas aber dies auch nur einmal komischerweise) auf den Source versehen
2) ich habe demzufolge auch gegen kein Copyright verstoßen
3) Warum fragen mich so viele Leute (per PN oder im Thread selber), nach dem Source?
3a) Entweder kannten alle die Links nicht die Matze so schnell bereit hatte
3b) oder wenn nach solchen Source gefragt wurde (sogar hier im Forum) wurden die Links nicht preisgegeben
3c) oder alle die mich gefragt haben waren einfach nur zu "blind" zum Source suchen...

Da kann man jetzt eine Menge spekulieren aber ich habe ein fertiges Programm geschrieben und ich sollte es in die CodeLib stellen. Das habe ich gemacht. Jetzt hat man wenigstens den kompletten Source (alle TAG's die auslesbar sind) hintereinander weg stehen und man kann sich jetzt selber überlegen was man braucht (ob alles in einer Unit like Luckie oder eben alles schön übersichtlich like leddl. Mich erst "minutenlang" (oder vielleicht sogar ohne Erfolg) durch's I-Net zu quälen und den Source auf 3-4 verschiedenen Seiten zu suchen ist vielleicht nicht so die schönste Art und Weise.

Also ich wünsche euch dann noch ein schönen Tag.
MFG Alex

Matze 28. Sep 2005 07:23

Re: ID3v1-Tag, ID3v2-Tag und MPEG-Header einer MP3 auslesen
 
Zitat:

Zitat von Alex_ITA01
Mich erst "minutenlang" (oder vielleicht sogar ohne Erfolg) durch's I-Net zu quälen und den Source auf 3-4 verschiedenen Seiten zu suchen ist vielleicht nicht so die schönste Art und Weise.

Das ist ja nichts gegen dich, nur ist es so, wenn wir hier Sourcen veröffentlichen und das nicht dürfen, da sie urheberrechtlich geschützt sind, können wir ernsthafte Probleme bekommen, was hier sicherlich keiner möchte.

Wir freuen und sehr, dass du uns den Code mit deinen Änderungen offenbarst, nicht, dass du das falsch verstehst, wir werden schon eine Lösung finden. :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:39 Uhr.
Seite 2 von 3     12 3   

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