Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi iTunes: Cover extrahieren? (https://www.delphipraxis.net/141520-itunes-cover-extrahieren.html)

Z4ppy 10. Okt 2009 18:57


iTunes: Cover extrahieren?
 
(Ist wohl sinnvoller, nen neuen Thread zu machen ^^)

Nachdem ich es dank Sir Rufo geschafft habe, diverse Informationen (Dauer, bereits abgespielter Teil des Tracks, etc.) zu dem aktuell in iTunes gespielten Track auszulesen, gehe ich nun noch einen Schritt weiter: Ich möchte gern das Cover aus dem Track holen :D

Nunja, mit der Software, die mir Sir Rufo hier empfohlen hatte, habe ich herausgefunden, dass über iTunesApp.CurrentTrack.Artwork auf das Cover bzw. auf ein Element des Typs IITArtwork zugreifen kann.
Dieser Typ besitzt eine Methode namens "SaveArtworkToFile".
Also gleich mal versucht, mittels iTunesApp.CurrentTrack.Artwork.SaveArtworkToFile(' C:\imageoO.jpg'); das Cover als Datei zu speichern (wobei ich vorher iTunesApp:=CreateOleObject('iTunes.Application'); aufgerufen hatte), um es dann weiterzuverarbeiten - klappt aber leider nicht :'(
Vom Delphi Debugger kommt folgende Meldung:

---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EOleError with message 'Method 'SaveToFile' not supported by automation object'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------

Heisst das etwa, dass man Cover nur manuell speichern kann? Das wär ja mal ganz doof :(

Wie komm ich an das Cover?

MfG Z4ppy

PS.: Natürlich könnte ich den Pfad zur MP3 extrahieren und dann mittels ID3-Tag das Cover irgendwie extrahieren, allerdings weiss ich nicht, ob iTunes das Cover überhaupt in der Datei selbst speichert oder nur im Ordner C:\Users\[username]\Music\iTunes\Album Artwork sichert, was auch sehr gut möglich wäre - immerhin ist dieser Ordner bei mir mit knapp 3300 Titeln im iTunes 128 MB gross...

Sir Rufo 10. Okt 2009 19:13

Re: iTunes: Cover extrahieren?
 
Danke für die Blumen :)

Die Cover speichert iTunes unterschiedlich ab.

a) Wenn die Cover direkt über den iTunes-Cover-LookUp-Funktion kommen, dann werden diese separat gespeichert
b) Wenn die Cover manuell zu den Tracks hinzugefügt werden, dann werden diese direkt in der mp3-Datei gespeichert

cu

Oliver

Z4ppy 10. Okt 2009 19:24

Re: iTunes: Cover extrahieren?
 
Cover-LookUp-Funktion = Das Cover wird ausm iTunes Store geladen, oder?

Naja, ich würde mein Programm gern kompatibel mit beidem machen. Mittels IsDownloadedArtwork (wiederum von IITArtwork) kann ich zwar feststellen, ob das ausm iTunes Store stammt. Wenn nicht, kann ich es aus der MP3 extrahieren - aber wie komm ich dran, wenn es über diese Cover-LookUp-Funktion geholt wurde?
Noch besser wär natürlich eine Lösung für beide Wege...

MfG Z4ppy

€dit: Ich hab jetz noch bisschen rumgeguckt in den ganzen COM-Typen usw. und gesehen, dass es wohl eher schwierig wird, an den Pfad zur MP3 zu kommen. Ich hab zumindest bislang keine Eigenschaft gefunden, die das beinhalten könnte. Das würde dann zur Folge haben, dass man die komplette MusicLibrary-XML-Datei parsen müsste :lol: Kann wohl nicht die Lösung sein...

Z4ppy 20. Okt 2009 18:20

Re: iTunes: Cover extrahieren?
 
Habe es jetzt rausgekriegt:
Delphi-Quellcode:
iTunesApp:=CreateOleObject('iTunes.Application');
iTunesApp.CurrentTrack.Artwork.Item[1].SaveArtworkToFile('C:\file');
(Natürlich gehört da noch einiges an Fehlerbehandlung rein ;) )

MfG Z4ppy


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz