jouer un son / notification en finch sur ssh sur ma machine locale


9

J'ai donc finchun client de chat en ligne de commande (pensez pidgin) fonctionnant sur une machine distante dans laquelle je me trouve ssh. fincha des sons de notification et peut exécuter une commande lorsque certains événements se produisent, vous permettant de passer le fichier son en tant que %s. par exemplemplayer %s

à partir de la machine distante, lorsque la notification se produit, quel type de commande pourrais-je exécuter pour lire ce qui se %strouve sur ma machine locale?

Réponses:


7

Si vous utilisez Pulse-Audio comme serveur de son, vous pouvez utiliser module-native-protocol-tcppour accepter la connexion TCP à partir de votre machine distante.

Dans l'exemple suivant, j'utilise un tunnel ssh pour transmettre la demande audio de la machine distante à la machine locale.

Sur la machine locale, faites quelque chose comme:

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

puis sur une machine distante, vous pouvez utiliser paplay

paplay -s 127.0.0.1:9999 soundfile.wav

AJOUTÉ J'ai découvert queauth-ip-acln'accepte paslocalhostcomme paramètre valide, vous devez utiliser127.0.0.1(ou quoi que votre machine utilise l'adresse localhost).

EDIT Il devrait êtressh -R, nonssh -L(nous transmettons un portdistance à un port local).


Si vous avez une ancienne version de pulse-audio (antérieure à 0.9.3), vous pouvez utiliser une autorisation basée sur les cookies.

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

Évidemment, vous ne pouvez tout simplement pas utiliser d'authentification en pulse-audio mais je ne peux pas vous recommander cette solution. Utilisez au moins un pare-feu pour éviter les connexions à distance.


obtenir "Échec: l'initialisation du module a échoué" pactl load-module module-native-protocol-tcp auth-ip-acl=localhost. Suis-je en train de manquer une dépendance ou quelque chose?
testeur

Essayez pulseaudio --check ; echo $?de vérifier si le serveur pulseaudio est en cours d'exécution. Il devrait s'imprimer 0s'il est en cours d'exécution.
andcoz

Sur ma machine (opensuse 12.1), le module est en place /usr/lib64/pulse-1.1/modules/module-native-protocol-tcp.so. Quelle distribution utilisez-vous?
andcoz

ma machine locale résonne 0correctement .. la télécommande est sur ubuntu 11.10 et ma section locale est sur 11.04. j'ai essayé de référencer le module directement sur mon local pactl load-module /usr/lib/pulse-0.9.22/modules/module-native-protocol-tcp.so auth-ip-acl=localhost et j'obtiens Failure: Invalid argument. Une idée? (btw merci pour l'aide)
testeur

auth-ip-aclest pris en charge depuis la version 0.9.3. Voir freedesktop.org/wiki/Software/PulseAudio/Documentation/User/…
andcoz
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.