відтворення звуку / сповіщення фінш над ssh на моїй локальній машині


9

Отож у мене є finchклієнт-чат-чат командного рядка (думаю, pidgin), який працює на віддаленій машині, в яку я sshвходить. finchмає звуки сповіщень і може запускати команду, коли відбуваються певні події, дозволяючи передати звуковий файл як %s. напрmplayer %s

з віддаленої машини, коли з'являється повідомлення, яку команду я можу запустити, щоб грати все, що %sє на моїй локальній машині?

Відповіді:


7

Якщо ви використовуєте імпульсний звук як звуковий сервер, ви можете 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 адресу).

EDIT Це повинно бутиssh -R, ніssh -L(ми пересилаємо віддалений порт до локального порту).


Якщо у вас є стара версія імпульсного звуку (до 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

Очевидно, що ви можете просто не використовувати будь-яку аутентифікацію в імпульсному аудіо, але я не можу рекомендувати вам це рішення. Використовуйте принаймні брандмауер, щоб уникнути віддалених з'єднань.


отримання "Помилка: Не вдалося ініціалізувати модуль" pactl load-module module-native-protocol-tcp auth-ip-acl=localhost. Я пропускаю залежність чи щось таке?
тестер

Спробуйте pulseaudio --check ; echo $?перевірити, чи працює сервер pulseaudio. Він повинен друкуватися, 0якщо працює.
andcoz

На моїй машині (відкриваєтьсявикористання 12.1) модуль входить /usr/lib64/pulse-1.1/modules/module-native-protocol-tcp.so. Над яким розподілом ви працюєте?
andcoz

моя локальна машина перегукується 0належним чином. Віддалений знаходиться на ubuntu 11.10 і мій локальний - 11.04. Я спробував посилатися на модуль безпосередньо на мій локальний, pactl load-module /usr/lib/pulse-0.9.22/modules/module-native-protocol-tcp.so auth-ip-acl=localhost і я отримую Failure: Invalid argument. Будь-яка ідея? (btw спасибі за допомогу)
тестер

auth-ip-aclпідтримується з версії 0.9.3. Дивіться freedesktop.org/wiki/Software/PulseAudio/Documentation/User/…
andcoz
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.