Donnerstag, 17. Februar 2011

iTunes Mediathek durchlaufen

In diesem Post möchte ich euch zeigen, wie man in C# die komplette iTunes Mediathek bzw. einzelne Wiedergabeliste durchlaufen kann.
Voraussetzung hierfür ist der vorige Post (Einbinden von iTunes in C#).
Sei iTunesPlayer nun wieder ein Objekt vom Typ iTunesApp, welches auf iTunes referenziert.
Dann liefert die Eigenschaft iTunesPlayer.LibraryPlaylist.Tracks alle in iTunes geladenen Mediendateien als Objekte vom Typ IITTrack.
Folgender Beispielcode schreibt alle Titel in eine Textbox (diese heißt textBox1, Multiline muss auf true stehen und Scrollbars sollten aktiviert sein):

iTunesApp iTunesPlayer = new iTunesApp();
foreach (IITTrack track in iTunesPlayer.LibraryPlaylist.Tracks)
{
    textBox1.Text += track.Artist + " - " + track.Name + Environment.NewLine;
}

Es können aber auch gezielt einzelne Wiedergabelisten (Playlists) angesprochen werden.
Über die Eigenschaft iTunesPlayer.LibrarySource.Playlists kann auf alle angelegten Playlists zugegriffen werden.
Jede Playlist hat dann wieder die Eigenschaft Tracks, worin die Mediendateien der Liste gespeichert sind.
Der folgende Beispielcode schreibt in eine Textbox alle Wiedergabelisten aus iTunes samt Titeln (als 1. Wiedergabeliste erscheint die Wiedergabeliste "Mediathek", welche die gesamte Bibliothek enthält):

foreach (IITPlaylist playlist in iTunesPlayer.LibrarySource.Playlists)
{
    textBox1.Text += "Wiedergabeliste: " + playlist.Name + Environment.NewLine + Environment.NewLine;
    foreach (IITTrack track in playlist.Tracks)
    {
        textBox1.Text += track.Artist + " - " + track.Name + Environment.NewLine;
    }
    textBox1.Text += "--------------" + Environment.NewLine + Environment.NewLine;
}

Kommentare:

  1. Cool Cool

    Kannst du eigentlich mal einen Webbrowser mit Tabs machen?

    AntwortenLöschen
  2. Hi @Jone@,

    bezüglich eines Webbrowsers mit Tabs wurde ich schon einmal gefragt, in den Kommentaren zum Post http://csharp-tricks.blogspot.com/2010/10/html-seiten-mit-dem-webbrowser.html habe ich kurz eine Lösung beschrieben, ist eigentlich ganz einfach.
    Ob ich dazu einen eigenen Post mache muss ich mir noch überlegen.
    Wenn du aber noch Fragen hast, sag Bescheid.

    Grüße
    Oliver

    AntwortenLöschen
  3. HeyHo Oliver,

    erstmal vielen Dank für Deine Mühe, Deine Erkenntnisse der Community zur Verfügung zu stellen.
    Vorenweg: Ich bin absoluter Neueinsteiger in der Programmierung mit C#.

    Ich habe mir nun vorgenommen eine "Oberfläche" zu bauen, mit welcher ich iTunes mittels Finger und Touchscreen bedienen kann (leider hab ich nix vernünftiges gefunden, was funktioniert und unter Windows 7 läuft.
    Außerdem macht es Spaß was selbst zu bauen und es dann auch anderen zur Verfügung zu stellen.
    Nun scheitere ich an ganz simplen Dingen:

    Wenn ich in MS Visual C# Deine Codeschnippsel einfüge, hagelt es Fehlermeldungen. Das liegt wohl daran, das dass "drumherum" nicht stimmig ist. Vielleicht kannst Du ja, und das wäre meine Bitte, den kompletten Quellcode zum jeweiligen Post als Download zur Verfügung stellen. Dann kann ich mich jedenfalls, mehr auf das Eigentliche konzentrieren, als viel viel Zeit mit dem "wegmachen" von einfachen Fehlern zu verbringen.

    So denn verbleibe ich erstmal

    MFG fishware

    AntwortenLöschen
  4. Hallo fishware,

    ich glaube dein Problem haben viele Programmiereinsteiger, auch ich kann mich noch gut daran erinnern! Es fehlt immer irgendwie ein kleines bisschen Hintergrundwissen und das Programm läuft aus Gründen nicht, die nicht direkt mit dem Quellcode zutun haben.
    Ich hoffe aber und dachte bis jetzt, dass meine Posts eigentlich alle ganz gut verständlich sind, unabhängig von der Programmiererfahrung.
    Da der Blog über Blogger läuft, habe ich leider keinen Zugriff auf den Webspace, kann also meine Projekte auch nicht hochladen - eine Erweiterung wäre aber sicherlich eine Überlegung wert.
    Vielleicht teilst du mir ja mal konkret mit, welche Schnipsel deiner Meinung nach nicht gut verständlich sind.
    Danke für dein Interesse.

    PS: Deine Programmidee klingt übrigens sehr spannend, bei Interesse kannst du sie mir gerne mal schicken damit sie hier ggf. gepostet werden kann!

    AntwortenLöschen
  5. Hallo Oliver,

    erstmal vielen Dank für Deine schnelle Reaktion.

    Deine Post sind gut. Vorallem auch erklärt.
    Ich habe aber z.B. bis jetzt noch nicht herausgefunden, welche Art Textbox Du verwendest.
    An der Stelle "fehlt" wahrscheinlich nur die Zeile
    private void.......

    Zu dem Projekt:

    Eigentlich geht es nur um die Vergrößerung der Bedienelemente, damit man(n) mit seinen Knubbelfingern nicht ständig daneben tippt.
    Desweiteren sollte die Oberfläche auch für Nicht-Itunes-Nutzer selbsterklärend sein, damit das Ganze bei Partys, Grillabenden (ja der Sommer kommt), den Touchscreen exponiert aufstellt, und alle Besucher in der Muckesammlung stöbern können, ohne jedesmal zu fragen, " Hast Du dieses...Wo finde ich... mach ma LAUTER".

    Was ich bisher gebaut habe sende ich Dir mal per Mail.

    So verbleibe ich den und 'Try&Errore' ein wenig weiter.

    MFG fishware

    AntwortenLöschen