AudioGenie Forum
September 08, 2010, 03:53:29 *
Willkommen Gast. Bitte einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?

Einloggen mit Benutzername, Passwort und Sitzungslänge
News: Neue Version 2.0.1.3 der AudioGenie DLL verfügbar!
 
Seiten: [1]
  Drucken  
Autor Thema: ID3V2-Kommentare  (Gelesen 356 mal)
VBAnfänger
Newbie
*
Beiträge: 21


Profil anzeigen
« am: Februar 03, 2010, 04:57:03 »

Hi Stefan,

da hast Du Dir echt Mühe gegeben mit dem neuen AudioGenie.

Ein kleine Frage habe ich:
In der bisherigen Version, konnte man mehrere ID3V2-Kommentare in den Tag einfügen (beginnend bei 1).
Ist dies in der neuen Version nicht mehr möglich?
Zitat:
Wegfall von Methoden wieID3V2SetComment(index, language, description, text), diese wurden ersetzt durch ID3V2AddCommentW(language, description, text)

Ich vermisse hier die Index-Nr des/der Kommentare.

M f G

VBAnfänger
Gespeichert
Stefan
Administrator
Sr. Member
*****
Beiträge: 425



Profil anzeigen WWW
« Antworten #1 am: Februar 03, 2010, 07:32:10 »

Ja der Index fehlt weg und zwar aus folgendem Grund:
Mit der "alten" DLL konntest du 5mal den gleichen Kommentar mit der gleichen Beschreibung speichern, was gegen die id3v2 Spezifikation verstösst:
Zitat
There may be more than one "TXXX" frame in each tag, but only one with the same description.
Um mich an den id3v2 Standard anzupassen, habe ich dies in der neuen Version so gemacht, dass du Kommentare einspielen kannst, aber bei gleicher Beschreibung eine Ersetzung stattfindet. So ist der Standard gewährleistet.
Das habe ich mit eigentlich allen Frames so gemacht, dass der Index weggefallen ist und ich mich an die id3v2-Vorgaben gehalten habe.

Stefan
Gespeichert

VBAnfänger
Newbie
*
Beiträge: 21


Profil anzeigen
« Antworten #2 am: Februar 04, 2010, 11:01:27 »

Hi Stefan,

danke für die wie immer kompetente Antwort.

Drei Fragen noch:

1. Spielen bei der Gleichheit der Beschreibung die Groß/Kleinschreibung und die Leerzeichen eine Rolle?
Wird also z.B. "Dies ist ein Kommentar"  von  "Dies ist ein kommentar" unterschieden oder
"Dies ist ein Kommentar" von "Dies  ist ein Kommentar" ?

2. Werden evtl. vorhandene Leerzeichen vor dem ersten Buchstaben und hinter dem letzten Buchstaben beim Speichern automatisch entfernt (Trim) ?

3. Auf der Download-Seite bietest Du ja schon die Wrapper für C, C# und VB6 an - ist der Wrapper für VB.net schon in Arbeit? Wenn ja: Wann ist er fertig?
Mein kleines Progrämmchen ist in VB.net geschrieben und ich würde Deine neue DLL gerne ausgiebig testen.

M f G

VBAnfänger
« Letzte Änderung: Februar 04, 2010, 04:38:36 von VBAnfänger » Gespeichert
Stefan
Administrator
Sr. Member
*****
Beiträge: 425



Profil anzeigen WWW
« Antworten #3 am: Februar 04, 2010, 09:08:37 »

Hallo,

Zitat
1. Spielen bei der Gleichheit der Beschreibung die Groß/Kleinschreibung und die Leerzeichen eine Rolle?
Wird also z.B. "Dies ist ein Kommentar"  von  "Dies ist ein kommentar" unterschieden oder
"Dies ist ein Kommentar" von "Dies  ist ein Kommentar" ?
Es wird Groß/Kleinschreibung nicht unterschieden," Dies ist ein Kommentar"  und "Dies ist ein kommentar" sind also gleich!
"Dies ist ein Kommentar" und "Dies  ist ein Kommentar" sind aber nicht gleich, da die Leerzeichen als normale Zeichen gelten und bei Unterscheidung natürlich nicht gleich sind.
Zitat
2. Werden evtl. vorhandene Leerzeichen vor dem ersten Buchstaben und hinter dem letzten Buchstaben beim Speichern automatisch entfernt (Trim) ?
Nein, werden sie nicht.
Zitat
3. Auf der Download-Seite bietest Du ja schon die Wrapper für C, C# und VB6 an - ist der Wrapper für VB.net schon in Arbeit? Wenn ja: Wann ist er fertig?
Dieser ist momentan nicht in Arbeit, zumindest nicht von mir und derzeit ist mir keiner bekannt.
Mir fehlt momentan einfach die Zeit, den auch noch umzubauen  Traurig Vielleicht erbarmt sich ja noch einer ...

Stefan
Gespeichert

quickmic
Jr. Member
**
Beiträge: 58


Profil anzeigen
« Antworten #4 am: Februar 05, 2010, 04:36:15 »

Muss da mal kurz nachhaken.

Zitat
Ja der Index fehlt weg und zwar aus folgendem Grund:
Mit der "alten" DLL konntest du 5mal den gleichen Kommentar mit der gleichen Beschreibung speichern, was gegen die id3v2 Spezifikation verstösst:

Was passiert, wenn das in "alten Files" aber bereits so der Fall ist. Was wird dann genommen (Welcher Index)? Wird der Rest gelöscht, oder schmiert dann Audiogenie ab?
Gespeichert
quickmic
Jr. Member
**
Beiträge: 58


Profil anzeigen
« Antworten #5 am: Februar 05, 2010, 04:38:46 »

Ach nochwas... Wenn ich mich recht erninnere.... Bei meinen Flac-Cover-tests war es auch möglich das selbe Useritem zigmal reinzuspeichern. Ist das jetzt auch behoben?
Gespeichert
Stefan
Administrator
Sr. Member
*****
Beiträge: 425



Profil anzeigen WWW
« Antworten #6 am: Februar 05, 2010, 04:49:29 »

Nun, lesen ist kein problem, da alle eingelesen werden und du dort mit dem Index arbeiten kannst.
Schliesslich weiss man ja nicht unbedingt, wie die Beschreibungen lauten.

Das Ersetzen passiert nur bei der neuen Methode ID3V2AddCommentW, und zwar nur den erstgefundenen; die bestehenden bleiben weiterhin enthalten.

Sagen wir mal folgendes Beispiel mit einem id3v2 tag und folgenden Kommentaren:
1. Desc1 Comment1
2. Desc1 Comment1
3. Desc1 Comment1

Du liest die Datei ein und kannst 3 Kommentare von 1 - 3 auslesen.
Du änderst irgendwas anderes und speicherst den id3v2 tag dann bleiben die auch da bestehen!
Du führst ID3V2AddCommentW("Desc1","NEU") auf, das Ergebnis sieht dann so aus:
1. Desc1 NEU
2. Desc1 Comment1
3. Desc1 Comment1



Stefan
Gespeichert

VBAnfänger
Newbie
*
Beiträge: 21


Profil anzeigen
« Antworten #7 am: Februar 09, 2010, 11:28:16 »

Hallo Stefan,

jetzt muss ich doch noch mal nachhaken (auch auf die Gefahr hin, lästig zu werden):

1. Ich ging bisher davon aus, dass die ID3V2-Spezifikation die Kombination aus Sprache + Beschreibung nur 1x im Kommentar-Frame zulässt:
Zitat
There may be more than one comment frame in each tag, but only one with the same language and content descriptor.
Dass ich also künftig z.B. mit der neuen Funktion ID3V2AddCommentW("DEU", "Dies ist ein Kommentar", "Das ist der Kommentartext")  einen Kommentar in den Tag schreiben, diesen mit der Funktion ID3V2SetCommentW("DEU", "Dies ist ein Kommentar", "Das ist der neue Kommentartext") bearbeiten und mit der Funktion ID3V2GetCommentW("DEU", "Dies ist ein Kommentar") abrufen kann. Ist dies richtig?

2. Sollte die Kombination aus Sprache + Beschreibung (also z.B. "DEU", "Dies ist ein Kommentar") mehrfach im Kommentar-Frame vorkammen, dann wird zukünftig der Erstgefundene überschrieben, die weiteren Doppelten bleiben unberührt. Um dies zu umgehen müsste man z.B. alle Kommentare in eine Tabelle/ein Listenfeld laden und auf Doppelte (Sprache + Beschreibung) prüfen - richtig?

3. Beschreibt TXXX nicht Usertexte?

M f G

VBAnfänger
Gespeichert
Stefan
Administrator
Sr. Member
*****
Beiträge: 425



Profil anzeigen WWW
« Antworten #8 am: Februar 11, 2010, 04:53:39 »

Hallo,

keiner wird hier lästig  Zwinkernd

Also hier die Zusammenfassung:
Zu 1:
Die TXXXX Frames ( 'User defined text' ) werden mit ID3V2AddUserTextW("DEU","Dies ist ein Kommentar") angelegt bzw nur das erste Vorkommen wird ersetzt.
Mit der Funktion ID3V2GetUserTextW(lfdNr) kann man den Text eines bestimmten Index abfragen und mit
ID3V2GetUserTextDescriptionW(lfdNr) kann man den Kommentar dazu abfragen.
Die Funktion ID3V2GetUserTextW("DEU") gibt es noch nicht; ist zwar aus C++ technisch möglich, scheitert aber an anderen Programmiersprachen, die gleiche Funktionsnamen mit unterschiedlichen Parametern nicht unterstützen.

Beispiel:
Bei einer Datei ohne id3v2 tag wird folgendes ausgeführt:
ID3V2AddUserTextW("DEU","Beschreibung1")
ID3V2AddUserTextW("ENG","Description")
ID3V2AddUserTextW("DEU","Beschreibung2")


Dann würde folgendes zurück geliefert werden:
ID3V2GetFrameCountW('TXXX')    //  2, da zwei UserTexte angelegt sind;
ID3V2GetUserTextW(1) // Beschreibung2
ID3V2GetUserTextW(2) // Description
ID3V2GetUserTextDescriptionW(1) // DEU
ID3V2GetUserTextDescriptionW(2) // ENG


Zitat
2. Sollte die Kombination aus Sprache + Beschreibung (also z.B. "DEU", "Dies ist ein Kommentar") mehrfach im Kommentar-Frame vorkammen, dann wird zukünftig der Erstgefundene überschrieben, die weiteren Doppelten bleiben unberührt. Um dies zu umgehen müsste man z.B. alle Kommentare in eine Tabelle/ein Listenfeld laden und auf Doppelte (Sprache + Beschreibung) prüfen - richtig?
richtig, mit dem alten AudioGenie war es (leider) möglich, Kommentardupletten anzulegen. Ob das aber jemand genutzt hat, weiss ich nicht.

Zitat
3. Beschreibt TXXX nicht Usertexte?
Natürlich; hatte ich mich doch glatt in dem vorangegangenen Beispiel vertan...

Das gleiche Prinzip gilt auch für die anderen id3v2 tags

Stefan

Gespeichert

VBAnfänger
Newbie
*
Beiträge: 21


Profil anzeigen
« Antworten #9 am: März 12, 2010, 02:59:28 »

Hallo Stefan,

ich kam leider erst jetzt wieder dazu, ins Audiogenie-Forum zu schauen. Vielen Dank für Deine umfassende Antwort.

Ich habe das Problem mit den doppelten Beschreibungen nun so gelöst:
- Die Kommentare, Liedtexte, SyncLyrics, UserUrls u. Usertexte werden auf einer eigenen Registerkarte
  eines TabControls angezeigt.
- Beim Anklicken der jew. Karte werden die Beschreibungen in eine eigene Tabelle geladen u. dort auf
  Doppelte geprüft.
- Sind doppelte Beschreibungen vorhanden, so wird auf der jew. Registerkarte ein Hinweislabel
  angezeigt.
- Wird nichts verändert u. das nächste MP3-File aufgerufen, so passiert nichts.
- Wird aber z.B. ein Kommentar verändert (u. doppelte Beschreibungen sind bei den Kommentaren
  vorhanden), so erscheint eine MassegeBox, dass alle doppelten Beschreibungen vor dem Speichern
  zu überarbeiten sind - sonst werden sie gelöscht (Liedtexte usw. bleiben davon unberührt).
- Werden danach die doppelten Beschreibungen bei den Kommentaren geändert - alles i.O.
- Werden die doppelten Beschreibungen nicht geändert - so werden alle Dubletten bei den
  Kommentaren beim Speichern aus der Tabelle entfernt, der verbleibende Rest in den ID3V2-Tag
  geschrieben.

Diese Methode ist vielleicht etwas radikal,  Schockiert  aber so vermeide ich, dass neue Dubletten angelgt werden.

M f G

VBAnfänger

Ach ja, beim Durchlesen fiel mir auf:
Bei den Kommentaren darf die Kombination aus Sprache + Beschreibung nicht doppelt sein.
« Letzte Änderung: März 12, 2010, 03:06:41 von VBAnfänger » Gespeichert
Seiten: [1]
  Drucken  
 
Gehe zu:  

UseBB Port by Gaia Modified & Upgraded by Croco Powered by SMF 1.1.11 | SMF © 2006, Simple Machines LLC