reproducir un sonido / notificación en finch sobre ssh en mi máquina local

9

Entonces, tengo finchun cliente de chat de línea de comando (piense en pidgin) ejecutándose en una máquina remota en la que estoy ssh. finchtiene sonidos de notificación y puede ejecutar un comando cuando ocurren ciertos eventos, lo que le permite pasar el archivo de sonido como %s. p.ejmplayer %s

desde la máquina remota, cuando se produce la notificación, ¿qué tipo de comando podría ejecutar para reproducir lo que %sesté en mi máquina local?

ensayador
fuente

Respuestas:

7

Si usa pulse-audio como servidor de sonido, puede usar module-native-protocol-tcppara aceptar la conexión tcp desde su máquina remota.

En el siguiente ejemplo, uso un túnel ssh para reenviar la solicitud de audio de la máquina remota a la local.

En la máquina local, haga algo como:

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

entonces en una máquina remota puedes usar paplay

paplay -s 127.0.0.1:9999 soundfile.wav

AGREGADO Descubrí queauth-ip-aclno aceptalocalhostcomo parámetro válido, tiene que usar127.0.0.1(o lo que sea que su máquina use la dirección localhost).

EDITAR Debería serssh -R, nossh -L(estamos reenviando un puerto remoto a un puerto local).


Si tiene una versión anterior de pulse-audio (anterior a 0.9.3), puede utilizar la autorización basada en 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

Obviamente, simplemente no puede usar ninguna autenticación en pulse-audio, pero no puedo recomendarle esta solución. Utilice, al menos, un firewall para evitar conexiones remotas.

andcoz
fuente
obteniendo "Fallo: Fallo en la inicialización del módulo" pactl load-module module-native-protocol-tcp auth-ip-acl=localhost. ¿Me estoy perdiendo una dependencia o algo así?
probador
Intente pulseaudio --check ; echo $?verificar si el servidor pulseaudio se está ejecutando. Debería imprimirse 0si se está ejecutando.
andcoz
En mi máquina (opensuse 12.1), el módulo está en /usr/lib64/pulse-1.1/modules/module-native-protocol-tcp.so. ¿En qué distribución estás corriendo?
andcoz
mi máquina local echos 0correctamente ... remoto está en ubuntu 11.10 y mi local está en 11.04. Traté de hacer referencia al módulo directamente en mi local pactl load-module /usr/lib/pulse-0.9.22/modules/module-native-protocol-tcp.so auth-ip-acl=localhost y obtengo Failure: Invalid argument. ¿Alguna idea? (por cierto, gracias por ayudar)
probador
auth-ip-acles compatible desde la versión 0.9.3. Ver freedesktop.org/wiki/Software/PulseAudio/Documentation/User/…
andcoz el