Starten von Airplay über die Befehlszeile, um die Ausgabe des Mac OS X-Befehls „Say“ an Airplay zu senden

Ok, Sonntagsfrage :) Ich versuche einen kleinen Scherz zu machen...

  1. Wenn Sie ein Terminal öffnen und "say -a ?" eingeben, zeigt Mac OS X Ihnen die Liste der Geräte an, an die es gesprochene Wörter senden kann. Auf meinem steht:

    39 AirPlay
    47 Built-in Output
    
  2. Ich habe einen Airplay-fähigen Denon-Empfänger in meinem Wohnzimmer und versuche, gesprochene Worte an meine Frau unten zu senden ... Ich kann problemlos Musik mit iTunes senden, also bin ich vom Standpunkt der Infrastruktur aus bereit.

  3. Ich möchte, dass mein Computer (aus heiterem Himmel) sagt: „Liebling, warum bringst du mir nicht eine Tasse Kaffee“. Ich kann es lokal auf meinen internen Laptop-Lautsprechern sagen lassen, aber ich kann das anscheinend nicht erfolgreich an Gerät 39 senden.

Ich vermute, dass noch ein paar andere Dinge eingerichtet werden müssen, bevor es funktioniert, dh die Airplay-Ausgabe auf "denon" einrichten, möglicherweise einen Kanal öffnen und reservieren. Ich weiß nicht.

Hat jemand damit gespielt? Gibt es eine Möglichkeit, Airplay über die Befehlszeile einzurichten? Das wäre großartig :)

Crossposting ist nicht erwünscht. Wählen Sie einen geeigneten Stack-Austausch und posten Sie Ihre Frage einmal. Wenn die Community entscheidet, dass es nicht hierher oder zu einem anderen Stapelaustausch gehört, wird es auf das richtige verschoben. Im Moment ist es am besten, die Frage hier zu löschen und beim Superuser zu bleiben (wo Sie bereits eine Stimme haben).
Die andere Alternative besteht darin, die Frage so zu bearbeiten/gestalten, dass sie spezifisch ist, wie Apple-Benutzer die Frage sehen/beantworten könnten. Wenn es wirklich kein gutes Unterscheidungsmerkmal gibt, ist es am besten, einfach eine Seite auszuwählen und zu fragen.

Antworten (2)

Ich habe vor ein paar Wochen damit gespielt.

Zum Senden an mein Apple TV per Airplay habe ich verwendet

 say -r160 -a "AirPlay" "Hover over a Method name while holding down the Option key until a question mark  appears"

Eine Sache, die mir damals aufgefallen ist, war, dass ich manchmal einen zweiten Befehl ausführen musste, um das Audio wieder auf den Computer umzuschalten.

 say -r160 -a "AirPlay" "Hover over a Method";say -r160 -a "Built-in Output" "I am back"

*update Gerade mit den Nummern getestet und sie funktionieren genauso gut anstelle des Gerätenamens.

Ja - ich bekomme das nicht zum Laufen und komme zu dem Schluss, dass es nicht Ihr oder mein Setup ist, sondern vielleicht ein Fehler oder eine mangelhafte Dokumentation in der Manpage. Das soll so funktionieren, dass Sie einfach den Befehl say ausführen und die Ausgabe auf das gewünschte Gerät richten.

 say -a 37 hi
 say -a 47 hi

Auf meinem MacBook Pro habe ich 37 für AirPlay, 47 für interne Lautsprecher und 64 für die DisplayPort-Cinema-Display-Lautsprecher. Die Geräte 47 und 64 funktionieren ordnungsgemäß, aber wenn ich Audio an AirPlay sende (entweder vor oder nach der Auswahl eines der mehreren AppleTV- und AirPlay-Empfänger, die ansonsten funktionsfähig sind), werden die Befehlsfehler mit Fehler -50 angezeigt.

 Setting audio output device failed: -50

Ich stimme zu, dass es Spaß machen würde, dies zu verwenden, und habe einen Fehler bei Apple gemeldet. Mal sehen, ob sie uns auf einen fehlenden Schritt hinweisen können oder ob es wirklich nur nötig ist, dass das Say-Programm einen Patch bekommt.

Nachdem ich die andere Antwort von markhunte gesehen hatte, versuchte ich es mit say -a "AirPlay" "hello"und es funktionierte für mich, die AirPlay-Ausgabe gesprochen zu haben. Sobald dieser Befehl ausgeführt wurde, -a 37funktioniert das jetzt auch. Ich bin jetzt gespannt, ob es nur etwas Zerbrechliches ist oder der Text die Dinge irgendwie besser verbindet.

Ich habe nur das eine Airplay-Gerät. Ich frage mich, ob das Problem ist, wenn es mehrere gibt.
@markhunte Ausgezeichneter Datenpunkt. Ich habe nicht daran gedacht, "AirPlay" zu verwenden, und jetzt, wo ich das tue, funktionieren die Dinge. Danke für die Lösung!