Spielen eines Sounds / einer Benachrichtigung in Finch über SSH auf meinem lokalen Computer

9

Ich habe also fincheinen Befehlszeilen-Chat-Client (Think Pidgin), der auf einem Remote-Computer ausgeführt wird, auf dem ich mich sshbefinde. finchhat Benachrichtigungstöne und kann einen Befehl ausführen, wenn bestimmte Ereignisse auftreten, sodass Sie die Audiodatei als übergeben können %s. z.Bmplayer %s

Welche Art von Befehl kann ich auf dem Remotecomputer ausführen, wenn die Benachrichtigung erfolgt, um das abzuspielen, was %ssich auf meinem lokalen Computer befindet?

Prüfer
quelle

Antworten:

7

Wenn Sie Puls-Audio als Soundserver verwenden, können Sie module-native-protocol-tcpdie TCP-Verbindung von Ihrem Remote-Computer akzeptieren.

Im folgenden Beispiel verwende ich einen SSH-Tunnel, um die Audioanforderung vom Remote-Computer an den lokalen Computer weiterzuleiten.

Führen Sie auf dem lokalen Computer Folgendes aus:

pactl load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1
ssh -R 9999:127.0.0.1:4713 you@remotehost

dann können Sie auf einem Remote-Computer verwenden paplay

paplay -s 127.0.0.1:9999 soundfile.wav

HINZUGEFÜGT Ich habe festgestellt, dass Sieauth-ip-aclkeinenlocalhostgültigen Parameterakzeptierenmüssen127.0.0.1(oder was auch immer Ihr Computer die lokale Hostadresse verwendet).

BEARBEITEN Es solltessh -Rnicht seinssh -L(wir leiten einen Remote-Port an einen lokalen Port weiter).


Wenn Sie eine alte Version von Puls-Audio (vor 0.9.3) haben, können Sie die Cookie-basierte Autorisierung verwenden.

pactl load-module module-native-protocol-tcp auth-anonymous=1 auth-cookie-enabled=0
scp ~/.pulse-cookie you@remotehost:
ssh -R 9999:localhost:4713 you@remotehost

Natürlich können Sie in Puls-Audio einfach keine Authentifizierung verwenden, aber ich kann Ihnen diese Lösung nicht empfehlen. Verwenden Sie mindestens eine Firewall, um Remoteverbindungen zu vermeiden.

andcoz
quelle
"Fehler: Modulinitialisierung fehlgeschlagen" wird aktiviert pactl load-module module-native-protocol-tcp auth-ip-acl=localhost. Vermisse ich eine Abhängigkeit oder so?
Tester
Versuchen Sie pulseaudio --check ; echo $?zu überprüfen, ob der pulseaudio-Server ausgeführt wird. Es sollte gedruckt werden, 0wenn es ausgeführt wird.
andcoz
Auf meinem Computer (opensuse 12.1) befindet sich das Modul in /usr/lib64/pulse-1.1/modules/module-native-protocol-tcp.so. Auf welcher Distribution laufen Sie?
andcoz
Mein lokaler Computer hallt 0richtig. Remote ist auf Ubuntu 11.10 und mein lokaler ist auf 11.04. Ich habe versucht, das Modul direkt auf meinem lokalen zu referenzieren pactl load-module /usr/lib/pulse-0.9.22/modules/module-native-protocol-tcp.so auth-ip-acl=localhost und ich bekomme Failure: Invalid argument. Irgendeine Idee? (Übrigens danke für Ihre Hilfe)
Tester
auth-ip-aclwird seit Version 0.9.3 unterstützt. Siehe freedesktop.org/wiki/Software/PulseAudio/Documentation/User/…
andcoz