Einzelnen Beitrag anzeigen

Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
847 Beiträge
 
Delphi 11 Alexandria
 
#40

AW: Cover in WMP Format

  Alt 13. Apr 2018, 21:54
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;
The angels have the phone box.
  Mit Zitat antworten Zitat