![]() |
AW: Cover in WMP Format
Was ich mittlerweile herausfand, aber Dir so auch nicht hilft, in den PRIV vom WMP generiert, werden viele Zahlen abgelegt, aus denen Wiederum erstellt WMP ein Name_ZAHLEN_ZAHLEN_ZAHLEN.jpg und verwendet es zur Ansicht.
Vielleicht komme ich noch dahinter was WMP da so anstellt, im moment sind meine Versuche noch mehr als buggy da brute-force. Auf GitHub fand ich noch ein Tag-Projekt, in VB geschrieben, was auch PRIV erkennt und anzeigen soll, ich kann damit nichts anfangen, aber vielleicht Du. Anbei der Source. edit Vergiss das letzte, hab grad erst gesehen das Du das gleiche GitHub Projekt drinn hast, Anhang gelöscht. |
AW: Cover in WMP Format
Zitat:
Das Bild dann weist du was dort in den Frames geschrieben wird. Aber es nutz mir nichts wenn ich es nicht selbst zum Tag addieren kann. gruss |
AW: Cover in WMP Format
Wenn du den WMP gar nicht benutzen willst, aber das Tag-System bzw. das Plugin, das dieses nutzt, dann könntest du probieren, ob du die GUIDs faken kannst. Wenn der WMP selbst an die Dateien nicht drankommt, dann könntest du probieren, dir ein eigenes GUID-System zu basteln. Diese GUID schreibst du dann in die Private-Frames Das genaue Format dieser Frames ggf. mit nem Hex-Editor austüfteln, meine Mp3FileUtils kann prinzipiell PRIV-Frames schreiben - Daten in einen Stream, Stream in den Frame, fertig. Dann packst du noch die Dateien "AlbumArt_{GUID}_large und small" in das Verzeichnis, und fertig.
Problem könnte dann nur auftauchen, wenn der WMP dann doch mal anfängt, an der Datei rumzupfuschen und "deine" GUID mit der WMP-GUID ersezt, die aus der online-Datenbank kommt oder sonstwie generiert wird, und dann ggf. ein falsches Cover "00000_0000_000_000" geladen wird. |
AW: Cover in WMP Format
Zitat:
AlbumArt_{00000000-0000-0000-0000-000000000000}_Large AlbumArt_{00000000-0000-0000-0000-000000000000}_Small Eine Leere guid und fertig stelle mir das aber nicht so einfach vor. ;) Zitat:
Hier kann man das Tool zum auslesen der PRIV Frames laden. 445KB ![]() gruss |
AW: Cover in WMP Format
Die PRIV-Frames sind ja keine Zauberei. Die sind so aufgebaut:
Code:
Der Owner identifier ist dieses "WM/WMCollectionGroup"-Gedöns. Die eigentlichen Daten sollten dann die GUID enthalten. Du müsstest dann "nur" herausfinden, wie die Binärdaten in Dateinamen konvertiert werden. Bei mir lasse ich den WMP nicht an meine mp3s, das müsstest du dann mal an ein oder zwei Dateien testen. Vielleicht ist es auch einfach eine Hexadezimal-Darstellung oder sonst eine einfache Kodierung.
<Header for 'Private frame', ID: "PRIV">
Owner identifier <text string> $00 The private data <binary data> Zum Schreiben und Lesen der PRIV-Frames bietet MP3FileUtils die Methoden
Delphi-Quellcode:
Wichtig ist hier dann nur wieder die Tag-Version des ID3-Tags. Die sollte 2.3 sein, und nicht 2.4.
function GetPrivateFrame(aOwnerID: AnsiString; Content: TStream): Boolean;
procedure SetPrivateFrame(aOwnerID: AnsiString; Content: TStream); |
AW: Cover in WMP Format
Wenn du mal reinschauen möchtest könnte ich dir eine Datei mit den PRIV Frames schicken
Mit dem Tool kannst du diese dann auslesen. ![]() Wenn Interesse besteht. ;) Zitat:
gruss |
AW: Cover in WMP Format
Gerne. Dann aber wenn möglich auch die Album-Art-Datei mit der GUID im Namen, damit da ein Abgleich möglich ist. :)
|
AW: Cover in WMP Format
Zitat:
Oder was meinst du? Ich kann die Bilder noch addieren. Die Datei funktioniert auch ohne das ich AlbumArt_{00000000-0000-0000-0000-000000000000}_Large.jpg AlbumArt_{00000000-0000-0000-0000-000000000000}_Small.jpg im Pfad habe wichtig sind diese beiden Dateien AlbumArtSmall.jpg Folder.jpg größe spielt keine rolle. Abgeschickt! Bei dem Anhang ohne.png fehlt das AlbumArtSmall.jpg Cover im Pfad. gruss |
AW: Cover in WMP Format
Datei zum Testen.. source include
Achtung das Plugin vom WMP MediaPlayer_10 muss registriert sein genauso wie die anderen vom WMP ansonsten werden sie nicht angezeigt und die Liste bleibt leer. Downloads wenn nicht vorhanden. ![]() Psychedelia Viz Pack (Albumart 3D) Energy Bliss WMP ist dafür nicht von nöten! Wenn man bei Albumart3d die Würfel mit Covers unterlegen will ist das Folder.jpg Voraussetzung! gruss |
AW: Cover in WMP Format
Laut dem Tag-Projekt, das du eben verlinkt hast, sind CollectionID und CollectionGroupID relevant. Die sind beide identisch und 16 Byte lang in der Datei, die du mir geschickt hast.
Dieser Code (basierend auf dem Mini-Tool aus der ersten Mail) schreibt eine zufällige ID in die Datei und konvertiert dabei die Basis-Infos zu Version 2.3 (Wichtig: Dabei können Infos verloren gehen. Zumindest sollte man die anderen Standard-Infos auch kopieren). Damit sollte dann auch die Chris-Datei, die du mir zuerst geschickt hast, vom WMP verstanden werden. Ob die zufällige ID dann reicht, oder ob doch irgendwo das Bild liegen muss .... keine Ahnung.
Delphi-Quellcode:
Procedure SetCoverpic;
var MP3Tags, v23Tag: TId3v2Tag; PicData: TMemorystream; GUID: TMemorystream; i: Integer; b: Byte; begin MP3Tags:= TId3v2Tag.Create; v23Tag := TId3v2Tag.Create; PicData:= TMemoryStream.Create; GUID := TMemorystream.Create; try If (MP3Tags.ReadFromFile(mp3File) = MP3ERR_None) Then begin Picdata.LoadFromFile(Picfile); // basic converting v23Tag.Artist := MP3Tags.Artist; v23Tag.Album := MP3Tags.Album; v23Tag.Title := MP3Tags.Title; for i := 1 to 16 do begin b := Random(255); GUID.Write(b, 1); end; v23Tag.SetPrivateFrame('WM/WMCollectionID', GUID); v23Tag.SetPrivateFrame('WM/WMCollectionGroupID', GUID); v23Tag.SetPicture('image/jpeg', 0, '*', PicData); v23Tag.WriteToFile(mp3file); end; finally FreeAndNIL(MP3Tags); FreeAndNIl(PicData); FreeAndNIl(GUID); FreeAndNIl(v23Tag); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:29 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