iTunes-Track herausfinden
Hi,
ganz so einfach, wie der Titel es scheinen lässt, ist es auch wieder nicht. ;) Ich versuche gerade ein wenig mit der iTunes-COM-API herumzuspielen. Soweit funktioniert das auch ganz akzeptabel, aber es hakt bei einer Sache: In einem Event erhalte ich als Parameter eine ID eines Tracks in Form eines OleVariants. Darüber ist es irgendwie Möglichkeit eine Variable vom Typ IITTrack zu erhalten. Da ich das nicht so ganz kapiert habe, habe ich mal gesucht und im CodeProject auch was gefunden. Dort steht für C#:
Code:
Ich hab's ausprobiert: das funktioniert wirklich.
protected void myiTunes_OnPlayerPlayEvent(object iTrack)
{ string myArtist, myName; IITTrack myTrack = (IITTrack) iTrack; myArtist = myTrack.Artist; myName = myTrack.Name; } Also dachte ich mir, dass es unter Delphi ja fast genauso gehen könnte:
Delphi-Quellcode:
Doch leider funktioniert das nicht mit dem Fehler
procedure TEventHandler.OnPlayerPlayEvent(Sender: TObject; iTrack: OleVariant);
var Track: IITTrack; begin {Einen Track aus iTunes Anhand der ID finden} Track := IITTrack(iTrack); {Zeile 54} // ... end; Fehlermeldung: [Fehler] uITunes.pas(54): E2089 Ungültige Typumwandlung Hat jemand eine zündende dafür? :? Chris |
Re: iTunes-Track herausfinden
Delphi-Quellcode:
procedure TEventHandler.OnPlayerPlayEvent(Sender: TObject; iTrack: OleVariant);
var Track: IITTrack; begin // kleine Sicherheitsüberprüfung Assert(VarType(iTrack) = varDispatch); // umwandeln Track := IDispatch(iTrack) as IITTrack; |
Re: iTunes-Track herausfinden
Hi,
yeah, danke dir! :thumb: Scheint zu funktionieren. :) Chris |
Re: iTunes-Track herausfinden
Kannst du bitte mal den gesamten Quellcode posten, denn ich habe das Problem, dass ich nicht verstehe, wie man die Ereignisse von iTunes implementieren muss.
|
Re: iTunes-Track herausfinden
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
guck dir mal diesen Thread an. Mit dem verlinkten Tool (EventSinkImp) kannst du dir eine Unit erstellen, die alle Events so wrappt, dass du sie einfacher verwenden kannst. Wenn du dann die Typenbibliothek und die neue Unit in deine Uses eingefügt hast, kannst du dir die Unit im Anhang ansehen (!). Direktes Weiterverwenden der Unit untersagt. Chris |
Re: iTunes-Track herausfinden
Ich glaub, dass das bei mir nich geht. Ich hab nur die Personal-Version von Delphi, und da gibt es das Tool TLibImp.exe anscheinend nicht, von dem EventSinkImp wird es aber benötigt. Das heißt, es klappt nicht. Könntest du mir bitte den von EventSinkImp erzeugten Quelltext geben?
|
Re: iTunes-Track herausfinden
Zitat:
gruß shockrocker |
Re: iTunes-Track herausfinden
Ich wüsste auch gerne, wie ich diese Events einbinde...
Alle meine Versuche waren atm. ohne Erfolg.... Hat nicht jemand einen Codeschnipsel ????? |
Re: iTunes-Track herausfinden
Zitat:
In dem verlinkten Thread ist ein Code-Schnipsel + ein Tool gepostet worden. Damit funktioniert es im Normalfall. Und wenn es trotz Tool nicht funktionieren sollte, wäre ein Formulierung dementsprechend sinnvoll, anstatt zu sagen "geht nicht" ("geht trotz tool nicht" wäre ja schonmal ganz nützlich). Chris |
Re: iTunes-Track herausfinden
Hallo Chakotay,
Zitat:
Und TROTZDEM kommen keine Events an !!! Ich habe iTunes 7.0.1.8. Die Steuerung klappt einwandfrei, aber eben keine Events... Und meine Frage war auch simpel, ich fragte ja nicht nach einem Codeschnipsel für Jabber :mrgreen: , sondern für iTunes... Danke für deine Mühen, ich habe alle Threads hier gelesen und auch entsprechendes getestet, nur funzt es nicht, ich weiss atm. nicht wieso. Und ich programmiere seit über 10 Jahren Pascal/Delphi, von daher will ich mal sagen, das ich schon weiss, was ich gemacht habe. Leider muss ich gestehen COM ist momentan Neuland... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:30 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