воспроизведение звука/уведомления в finch через ssh на моей локальной машине

воспроизведение звука/уведомления в finch через ssh на моей локальной машине

Итак finch, у меня есть клиент командной строки чата (например, Pidgin), работающий на удаленной машине, в которую я sshвхожу. finchОн издает звуковые уведомления и может запускать команду при возникновении определенных событий, позволяя вам передавать звуковой файл как, %sнапример,mplayer %s

Какую команду я могу выполнить с удаленной машины, когда появится уведомление, чтобы воспроизвести то, что %sнаходится на моей локальной машине?

решение1

Если вы используетеимпульс-аудиокак звуковой сервер, вы можете использовать его module-native-protocol-tcpдля приема TCP-подключений с вашего удаленного компьютера.

В следующем примере я использую SSH-туннель для пересылки аудиозапроса с удаленной машины на локальную.

На локальной машине сделайте что-то вроде:

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

затем на удаленной машине вы можете использоватьpaplay

paplay -s 127.0.0.1:9999 soundfile.wav

ДОБАВЛЕНЯ обнаружил, что auth-ip-aclне принимает localhostв качестве допустимого параметра, вам придется использовать 127.0.0.1(или любой другой адрес localhost, который использует ваша машина).

РЕДАКТИРОВАТЬДолжно быть ssh -R, а не ssh -L(мы перенаправляем удаленный порт на локальный порт).


Если у вас старая версия Pulse-Audio (до 0.9.3), вы можете использовать авторизацию на основе cookie-файлов.

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

Очевидно, вы можете просто не использовать никакую аутентификацию в Pulse-Audio, но я не могу рекомендовать вам это решение. Используйте, по крайней мере, брандмауэр, чтобы избежать удаленных подключений.

Связанный контент