Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi iTunes-Track herausfinden (https://www.delphipraxis.net/51826-itunes-track-herausfinden.html)

CalganX 19. Aug 2005 17:04


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:
protected void myiTunes_OnPlayerPlayEvent(object iTrack)
{
  string myArtist, myName;

  IITTrack myTrack = (IITTrack) iTrack;
  myArtist = myTrack.Artist;
  myName = myTrack.Name;
}
Ich hab's ausprobiert: das funktioniert wirklich.

Also dachte ich mir, dass es unter Delphi ja fast genauso gehen könnte:
Delphi-Quellcode:
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;
Doch leider funktioniert das nicht mit dem Fehler
Fehlermeldung:
[Fehler] uITunes.pas(54): E2089 Ungültige Typumwandlung


Hat jemand eine zündende dafür? :?

Chris

shmia 19. Aug 2005 18:14

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;

CalganX 19. Aug 2005 18:22

Re: iTunes-Track herausfinden
 
Hi,
yeah, danke dir! :thumb:
Scheint zu funktionieren. :)

Chris

jakobwenzel 6. Nov 2005 16:10

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.

CalganX 6. Nov 2005 16:58

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

jakobwenzel 6. Nov 2005 18:08

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?

shockrocker 29. Apr 2006 21:33

Re: iTunes-Track herausfinden
 
Zitat:

Zitat von jakobwenzel
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.

ich habe delphi 5 std und da gibts das leider auch nicht - gibts sonst noch nen weg die events einfacher zu wrappen?

gruß
shockrocker

DaCoda 24. Okt 2006 21:05

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 ?????

CalganX 24. Okt 2006 21:34

Re: iTunes-Track herausfinden
 
Zitat:

Zitat von Chakotay1308
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.

Schreib ich hier süd-aramäisch? :gruebel:
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

DaCoda 25. Okt 2006 15:42

Re: iTunes-Track herausfinden
 
Hallo Chakotay,
Zitat:

Schreib ich hier süd-aramäisch?
Nein, das tust du nicht... Aber ich habe genau dieses Tool und die dabei entstandene Unit getestet...
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.
Seite 1 von 2  1 2      

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