iTunes-Steuerung mit AirPlay unterstützung

Hallo,
bin grad an einer Lösung iTunes über die DACP Schnittstelle zu Steuern dran.
Im moment ist es möglich die Airplay Lautsprecher zu aktivieren/deaktivieren die Lautstärke ein zu stellen, die Playlists auszulesen und Tracks aus der Playlist wider zugeben, inkl. Fwd, Prev, Pause, Play und Lautstärke generell.
Im moment Arbeite ich noch daran Freigegebene Librs einzubinden und Durchsagen zu realisieren.
Das ganze läuft als Kleines Java Programm im Hintergrund und bietet eine SOAP Schnittstelle an die von PHP sehr einfach angesprochen werden kann.
Die frage ist was für Features wären noch interesant bzw. wer hat überhaupt daran interesse, entsprechend Gnerisch werde ich das ganze versuchen auszulegen.
Grüße
Marcus

Also das mit IPS Ansagen über Airplay fände ich sehr genial.
iTunes ansteuern natürlich auch, aber die IPS Ansagen im Haus wären meine „nummer 1“

Klingt auf jeden Fall interessant. Wenn du jemanden zum testen suchst, ich habe einen Mac Mini (OSX Lion) mit iTunes und 4 Apple TV 2.

Sowie diverse iPhones und iPads.

Also wenn hier bei „Wünsch Dir was“ sind, dann würde ich mir wünschen…

…das es möglich ist Airplay Lautsprecher OHNE laufendes iTunes anzusteuern. Warum ? Hier : http://www.ip-symcon.de/forum/f39/multiroom-audio-apple-way-7046/index3.html#post129630

Ein dauerhaft laufendes iTunes frisst CPU und RAM auf, teilweise soweit, dass der Server nicht mehr ansprechbar ist. Leider nicht nur bei mir…

Gruß
Martin

Ohne iTunes wäre natürlich ein echter Traum…

Verwende iTunes mit der Schnittstelle die sonst die RemoteApp fürs Iphone verwendet, hierfür (DACP,DAAP) gibts ein paar Opensource Anwenungen für Android an diese Implementierungen halte ich mich.
Die Ansage wird vermutlich so laufen ,das man eine Playlist mit einem oder mehreren Titeln hinterlegt, die dahinter liegenden Dateien mit IPS TTS neu erzeugt, die aktuelle Wiedergabe anhält sich liste und Track merkt, die Playlist für die Ansage abspielt und dann die alte Playlist mit Track und Position wieder hergestellt wird.
Grüße
Marcus

Also, bei mir läuft iTunes Tag und Nacht - sonst könnte ich nicht immer TV schauen wenn ich möchte auf den Apple TVs. Der Mac Mini hat gerade mal Core 2 Duo 2.4 GHz und 4 GB Ram (inkl. Win XP VM).

Da kann ich keine Probleme feststellen, hast du Windows oder Mac (wo das iTunes läuft)?

Windows - und das wird vermutlich auch das Problem sein…

Ich kenne einige, die es unter Mac performant und dauerhaft laufen haben - aber Windows ist bei der iTunes Entwicklung wohl eher ein Stiefkind :-/

Vermutlich werde ich früher oder später auf Sonos gehen. Wenn ich im Lotto gewinne.

Also hier läuft iTunes auf ner XP-Maschine seit ca. 67 Tagen ohne Probleme… :slight_smile:

Hm…bei mir lief es auf nem W2003 Server. Vielleicht sollte ich wirklich mal eine VM für itunes bauen…

Meine Wunschliste:

Rück-Kommunikation zu IPS in Variablen mit:
Titel
Interpret
Album
Spielzeit/Tracklänge
Cover!
Airplaygeräte status + Lautstärke
Shufflestatus
Repeatstatus
Ituneslautstärke

ich benutze iTunes, weil man in IPS nicht so schön und übersichtlich die Medien wählen kann, wie in einem extra Programm (iTunes oder Winamp). Die Endlösung wäre sicher eine vollständige Mediennavigation und Visualisierung direkt in IPS, kann auch gerne einige Euros extra kosten.

Habe pleibling einer Version zum Testen bereitgestellt. Nächste Woche gibts dann die erste Public Beta…

Kann es nur nicht hier Hochladen, weil der Soap Server zu groß ist (ca. 3MB), werds dann über meine HP Beritstellen und hier Verlinken.

Also Funtionsumfang:

  • Play, Pause, Next;Prev (aktueller Status wird noch nicht korrekt angezeigt)
  • Playlisten auswählbar
  • Tracks Auswählbar
  • Steuerung der Airplay Boxen (An/aus und Lautstärke)
  • Lautstärke Allgemein

Vorrausetzungen: aktuell Java installation (JRE 1.6 oder neuer)

Zur Installation:
Herunterladen unter http://www.mensae.eu/ips/itunes_ips.zip
Dateien:

iTunesSoap_Beta1.jar --> Java Soap Server in irgenein Verzeichniss legen und in diesem Verzeichniss ein Verzeichniss mit dem namen db anlegen, und mit:
java -jar iTunesSoap_Beta1.jar <ip-itunes> <lokale-ip:8085>
starten, Pairing in itunes druchführen (meldet sich als itrs)
Hinweis: Die ip des iTunes PC’s angeben, kein hostname oder netbios name etc… Braucht ca. 10 Sekunden zum starten, un ist erst danach erreichbar.

ajax_handler.php --> In <ips>/webfront/user/iTunes/ kopieren
und die Zeile $iTunes = new iTunesControll(„192.168.178.221:8085“);
auf die entsprechende andresse setzten, auf der sich der Java Soap Server befindet. Diese Datei behandlet alle requests die ich nicht direkt über die Webfront Funktionen realisieren konnte.

iTunesClass.php
Wrapper für die SOAP aufrufe mit entsrechendem Fehlerhandling.
Nach <ips>/webfront/user/iTunes/ kopieren und ins Scriptverzeichniss on IPS

ips_script.php
Als IPS Script anlegen entweder durch Inhalt in ein neues Script Kopieren oder mit Datei beim anlegen angeben.
WichtigScript in eine eigen Kategorie legen bevor man es ausführt, da es in dieser Kategorie auch die AIrplay Laustprecher und alle Variablen anlegt die es benötigt.
Den eintrag
$iTunes = new iTunesControll(„192.168.178.221:8085“);
entsprechend ändern (siehe oben).
Dann einfach ein Timer-Event anlegen mit der gewünschte Aktualisierungszeit für Zeit und Track Informationen

Die nächste Version wird mit etwas mehr Feature und etwas besser aufgeräumteren Code daherkommen.

Hi Chef,

danke für das Inntal - leider bin ich erst jetzt dazu gekommen (meine Frau und Kind haben sich gerade mal ne Stunden hingelegt, also nix wie hin zum Rechner).

Ich schreibe mal hier, damit auch andere von den Lösungen profitieren können.

Ich habe folgendes Setup:

Macmini mit Mac OSX 10.7, Java installiert, hier ist mein iTunes und meine Medien, Apple Remote App und Airplay Devices sind hieran angebunden. IP ist 192.168.40.1

Weiterhin habe ich eine XP VM auf dem Macmini laufen, da ist mein IPS drin, 2.4 Version, IP ist 192.168.40.2

Habe im IPS Ordner einen Unterordner Itunes Soap Server erstellt und die jar Datei darin abgelegt. Dann folgende Verknüpfung erstellt: %windir%\system32\java.exe -jar iTunesSoap_Beta1.jar 192.168.40.1 192.168.40.2:8085

Dann in Webfront/user Unternordner itunes erstellt und die beiden Scripte rüberkopiert (ajax_handler und itunesclass.

Dann in IPS eine Kategorie (im Root) itunes angelegt. Darin das Script Setup erstellt mit dem Inhalt aus der ips_script. Die IP Adressen ist in beiden Files auf 192.168.40.2 geändert (auf dem virtuellen XP rennt ja der Soap Server).

Wenn ich nun den Soap Server starte bekomme ich die Fehlermeldung wie im Bild.

Auch im Setup bekomme ich Fehler:

Warning:  Profil mit Namen "~Volume" existiert nicht in C:\IP-Symcon\scripts\52823.ips.php on line 261

Warning:  Profil mit Namen "~PlayerStatus" existiert nicht in C:\IP-Symcon\scripts\52823.ips.php on line 261

Warning:  include_once(iTunesClass.php) [function.include-once]: failed to open stream: No such file or directory in C:\IP-Symcon\scripts\52823.ips.php on line 17

Warning:  include_once() [function.include]: Failed opening 'iTunesClass.php' for inclusion (include_path='.;C:\php5\pear') in C:\IP-Symcon\scripts\52823.ips.php on line 17

Fatal error:  Class 'iTunesControll' not found in C:\IP-Symcon\scripts\52823.ips.php on line 18

Denke mal meine Fehler sind auf Scriptseite, das mir die Profile und das itunescontroll script im Scriptverzeichnis fehlen?

Was habe ich noch für Fehler?

Achja, Firewall ist aus LAN intern, Virenschutz verwende ich den MS Security Essentiale auf dem virtuellen Rechner.

Danke für deine Hilfe :).

Bildschirmfoto 2011-08-28 um 14.53.21.png

Ok, nachdem ich das Script ins ips/scripts Verzeichnis kopiert haben sieht es schonmal besser aus:


Warning:  Profil mit Namen "~Volume" existiert nicht in C:\IP-Symcon\scripts\52823.ips.php on line 261

Warning:  Profil mit Namen "~PlayerStatus" existiert nicht in C:\IP-Symcon\scripts\52823.ips.php on line 261

Dennoch scheint das Script einen Augenblick zu hägen (ich denke mal es wird der Soap Server gesucht, welcher aber nicht gefunden werden kann da dieser nicht startet - siehe Fehlermeldung vorher).

Danke dir.

Warning: Profil mit Namen „~Volume“ existiert nicht in C:\IP-Symcon\scripts\52823.ips.php on line 261
Einfach Integer Var Profil anlegen mit ~Volume als Namen und einteilung nach Gusto

Warning: Profil mit Namen „~PlayerStatus“ existiert nicht in C:\IP-Symcon\scripts\52823.ips.php on line 261

Einfach Integer Var Profil ~PlayerStatus anlegen mit 0=Prev 1=Play 2=Pause 3=Stop 4=Next

Die nächsten 3 Fehler müßten eigentlich daruf zurückzuführen sein das die iTunesClass.php nicht im C:\IP-Symcon\scripts Verzeicniss ist, die auch ins entsprechende Verzeichniss kopieren

Warning: include_once(iTunesClass.php) [function.include-once]: failed to open stream: No such file or directory in C:\IP-Symcon\scripts\52823.ips.php on line 17

Warning: include_once() [function.include]: Failed opening ‚iTunesClass.php‘ for inclusion (include_path=’.;C:\php5\pear’) in C:\IP-Symcon\scripts\52823.ips.php on line 17

Fatal error: Class ‚iTunesControll‘ not found in C:\IP-Symcon\scripts\52823.ips.php on line 18

Öhmm, das ist ja strange. In der Fehlermeldung ist die IP .122 und iMac Wohnzimmer als Name, das ist aber der Rechner an dem ich gerade sitze (weder Macmini, der ja ein Server im Keller ist - noch der virtuelle XP Rechner).

Da war natürlich iTunes geöffnet, sieht so aus als wenn der Server statt der angegebenen IP (.1) einfach irgendeinen genommen hat, der gerade da war.

Wenn ich das iTunes auf dem iMac ausmache, dann wird mir auch das Koppeln auf dem Macmini angeboten - aber was gebe ich dann für einen Code ein?!? Mir wird ja keiner angezeigt.

Hi hats du das db Verzeichniss erstellt in dem Verzeichniss in dem sich die Jar Datei befindet? Ist in diesem eine pairing.db?

Sorry hatte ich hatte es vergessen zu schriebn einfahc irgendeinen eingeben…

Also, es ist so das im Endeffekt das Remote überall auftaucht (wird quasi gebraodcastet). Der Java Server bekommt den Pairingcode und sagt dann nur noch ok oder auch nicht… Aktuell sagt er zu jedem Code ja und amen…
Mit der IP gehe ich dann auf die Suche nach den gepairten Rechnern und dieser wird dann auch gesteuert…