![]() |
Re: ID3v1-Tag, ID3v2-Tag und MPEG-Header einer MP3 auslesen
Zitat:
|
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.
|
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.
|
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 |
Re: ID3v1-Tag, ID3v2-Tag und MPEG-Header einer MP3 auslesen
Zitat:
|
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. ;)
|
Re: ID3v1-Tag, ID3v2-Tag und MPEG-Header einer MP3 auslesen
|
Re: ID3v1-Tag, ID3v2-Tag und MPEG-Header einer MP3 auslesen
Zitat:
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 ![]() |
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 |
Re: ID3v1-Tag, ID3v2-Tag und MPEG-Header einer MP3 auslesen
Zitat:
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 13:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz