Hallo zusammen,
es geht darum, die Eigenschaften von wma-Dateien wie z. B. Titel, Interpret, Album etc. auszulesen. Als ich eine wma-Datei mit dem Editor geöffnet habe, habe ich gesehen, dass die Werte im Dateikopf enthalten sind und kann sie auch lesen (davor kommt dann z. B. "WM/Year" und geht bis zu einem doppelten NullCharacter; auf jeden Buchstaben (auch bei "WM/Year") folgt ein NullCharacter). So weit, so gut. Es gibt nun jedoch folgende Probleme:
Kann man vielleicht die Eigenschaften aus bestimmten Bytes direkt auslesen?
Habe hier im Forum mal einen Beitrag gesehen, jedoch ging es dabei um mp3-Dateien:
MP3 Eigenschaften auslesen und setzen
EDIT:
Für das Auslesen der Dateien habe ich einen Code gefunden:
WMA Tags lesen
Was jedoch das Ändern angeht (Problem 2), habe ich noch nichts gefunden.
es geht darum, die Eigenschaften von wma-Dateien wie z. B. Titel, Interpret, Album etc. auszulesen. Als ich eine wma-Datei mit dem Editor geöffnet habe, habe ich gesehen, dass die Werte im Dateikopf enthalten sind und kann sie auch lesen (davor kommt dann z. B. "WM/Year" und geht bis zu einem doppelten NullCharacter; auf jeden Buchstaben (auch bei "WM/Year") folgt ein NullCharacter). So weit, so gut. Es gibt nun jedoch folgende Probleme:
- Die Positionen und die Reihenfolge der verschiedenen Eigenschaften sind immer anders (mit InStr kein Problem). Ich will jedoch nur soviel von der Datei mit dem TextStream-Objekt lesen wie nötig (wegen Dauer und PC-Auslastung). Ich habe zwar eine Grenze festgelegt (32 kB), als ich jedoch gemerkt habe, dass bestimmte Eigenschaften, die vorhanden waren, bei bestimmten Dateien nicht gelesen wurden, musste ich die Grenze erhöhen. Inzwischen bin ich bei einer variablen Grenze, indem ich nach einer bestimmten Zeichenfolge suche. Das klappt zwar meistens, jedoch nicht immer, da manche Dateien die Zeichenfolge im Kopf nur zweimal haben, während die anderen sie dreimal haben. Stoppe ich beim zweiten Finden der Zeichenfolge, werden bei denen mit drei Vorkommen gar keine Eigenschaften ausgelesen. Stoppe ich beim dritten Finden, wird bei denen mit zwei Vorkommen die komplette Datei ausgelesen, was ich ja vermeiden will.
- Wenn ich nun einen Wert mit VBA ändern will, muss dieser genausoviele Zeichen haben wie der ursprüngliche Wert (Sonst meldet der Windows Media Player beim Abspielen, dass es sich um eine ungültige Datei handelt). Ich muss also mit Leerzeichen auffüllen bzw. den neuen Wert abschneiden. Wenn eine Eigenschaft noch nicht festgelegt war, kann ich sie nicht hinzufügen, denn ich weiß nicht wo (wie gesagt sind die Positionen und die Reihenfolge immer anders). Außerdem muss ich die komplette Datei neu schreiben (sprich: kopieren und dabei die zu ändernden Werte abändern), wenn ich etwas ändern will, was ich gerne vermeiden würde. Ich will ja nur einen bestimmten Teil ändern.
Kann man vielleicht die Eigenschaften aus bestimmten Bytes direkt auslesen?
Habe hier im Forum mal einen Beitrag gesehen, jedoch ging es dabei um mp3-Dateien:
MP3 Eigenschaften auslesen und setzen
EDIT:
Für das Auslesen der Dateien habe ich einen Code gefunden:
WMA Tags lesen
Was jedoch das Ändern angeht (Problem 2), habe ich noch nichts gefunden.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „roddy“ ()