
Então eu tenho finch
um cliente de bate-papo de linha de comando (pense em pidgin) rodando em uma máquina remota em que eu ssh
uso. finch
possui sons de notificação e pode executar um comando quando determinados eventos ocorrem, permitindo que você passe o arquivo de som como %s
. por exemplomplayer %s
da máquina remota, quando a notificação ocorrer, que tipo de comando eu poderia executar para reproduzir o que quer que %s
esteja na minha máquina local?
Responder1
Se você usarpulso-áudiocomo servidor de som, você pode usar module-native-protocol-tcp
para aceitar a conexão TCP de sua máquina remota.
No exemplo a seguir, uso um túnel ssh para encaminhar a solicitação de áudio da máquina remota para a local.
Na máquina local, faça 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
então na máquina remota você pode usarpaplay
paplay -s 127.0.0.1:9999 soundfile.wav
ADICIONADODescobri que auth-ip-acl
não aceita localhost
como parâmetro válido, você tem que usar 127.0.0.1
(ou o que quer que sua máquina use endereço localhost).
EDITARDeveria ser ssh -R
, não ssh -L
(estamos encaminhando uma porta remota para uma porta local).
Se você tiver uma versão antiga do pulse-audio (anterior à 0.9.3), poderá usar a autorização baseada em 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, você pode simplesmente não usar nenhuma autenticação no pulse-audio, mas não posso recomendar esta solução. Use, pelo menos, um firewall para evitar conexões remotas.