Donnerstag, 17. Februar 2011

iTunes einbinden

Die nächste Postreihe wird sich mit dem Musikprogramm iTunes von Apple beschäftigen.
Hierzu werde ich mehrere Posts veröffentlichen, die verschiedene Funktionen der Anbindung zeigen.
In diesem ersten Post zeige ich, wie man iTunes grundsätzlich in ein C# - Programm einbindet - hierfür ist gar keine zusätzliche Software wie das iTunes SDK nötig, schon bei der "normalen" Installation von iTunes wird das benötigte COM - Objekt mitinstalliert.
Um nun in einem bestehnden C# - Projekt eine Referenz zu diesem einzufügen, ist der Menüaufruf Projekt - Verweis hinzufügen nötig.
Dann wechselt man zur Spalte COM und wählt dort das Objekt iTunes 1.13 Type Library aus (die Versionsnummer kann natürlich anders lauten). Und schon ist iTunes fertig zur Nutzung!
Der Einfachkeit halber importieren wir die entsprechende Bibliothek mittels using:
using iTunesLib;

Im Programm kann dann eine Instanz des iTunes Players beispielsweise so instanziert werden:

iTunesApp iTunesPlayer = new iTunesApp();

Wird diese Zeile im Programm ausgeführt, öffnet sich iTunes (wenn nicht bereits offen), und die Player Instanz wird mit dem Objekt im C# - Programm verknüpft.
Im nächsten Post beschreibe ich das Durchlaufen aller Lieder der Musikbibliothek / verschiedener Wiedergabelisten.

Kommentare:

  1. Hi, deine iTunes Artikel finde ich gut.

    Wie kann ich das Objekt wieder nach Benutzung löschen, das durch iTunesApp iTunesPlayer = new iTunesApp(); erstellt wurde?

    Wenn ich mein Skript starte und iTunes beenden will, so meldet iTunes, das noch ein Skript auf iTunes zugreift. Somit sollte der Speicherbereich doch vorher gelöscht werden!?
    Gruß Ta

    AntwortenLöschen
  2. Hallo Ta,

    zum Einen gibt es die Funktion Quit() des iTunes Objekts, diese beendet die aktuelle iTunes - Anwendung:
    iTunesPlayer.Quit();

    Wenn du aber einfach die Verbindung zwischen iTunes und Programm trennen willst, damit beim manuellen Beenden diese Warnmeldung nicht mehr auftritt, kannst du folgenden Befehl verwenden:
    System.Runtime.InteropServices.Marshal.ReleaseComObject(iTunesPlayer);
    ("iTunesPlayer" natürlich durch das entsprechende iTunes Objekt ersetzen und am besten noch eine Null Abfrage einbauen)

    Hoffe das hat geholfen!
    Viele Grüße
    Oliver

    AntwortenLöschen
  3. Hallo Oliver,

    wollte nur kurz aus dem Jahr 2016 einen lieben Gruß zu deinem Post von 2011 dalassen und sagen, dass du mir damit auch fünf Jahre später immernoch sehr geholfen hast - Danke :)

    Raphael

    AntwortenLöschen
    Antworten
    1. Hallo Raphael,

      vielen Dank für deine netten Worte, das freut mich! :)

      Löschen