odtwarzam dźwięk / powiadomienie w finch przez ssh na mojej lokalnej maszynie

9

Tak więc mam finchklienta czatu z wiersza poleceń (think pidgin) działającego na zdalnej maszynie, na której pracuję ssh. finchma dźwięki powiadomień i może uruchomić polecenie, gdy wystąpią określone zdarzenia, umożliwiając przekazanie pliku dźwiękowego jako %s. na przykładmplayer %s

z komputera zdalnego, kiedy pojawi się powiadomienie, jakie polecenie mogę uruchomić, aby odtworzyć wszystko, co %sjest na moim komputerze lokalnym?

próbnik
źródło

Odpowiedzi:

7

Jeśli używasz puls-audio jako serwera dźwięku, możesz użyć module-native-protocol-tcpdo zaakceptowania połączenia tcp ze zdalnego urządzenia.

W poniższym przykładzie używam tunelu ssh, aby przekazać żądanie audio ze zdalnego komputera do lokalnego.

Na komputerze lokalnym zrób coś takiego:

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

następnie na zdalnym komputerze możesz użyć paplay

paplay -s 127.0.0.1:9999 soundfile.wav

DODANO Odkryłem, żeauth-ip-aclnie akceptujelocalhostjako prawidłowego parametru, musisz go użyć127.0.0.1(lub cokolwiek innego twój komputer używa adresu localhost).

EDIT Powinno byćssh -R, niessh -L(przekierowujemy port zdalny do portu lokalnego).


Jeśli masz starą wersję impulsu audio (wcześniejszą niż 0.9.3), możesz użyć autoryzacji opartej na plikach 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

Oczywiście po prostu nie można używać uwierzytelniania w trybie puls-audio, ale nie mogę polecić tego rozwiązania. Użyj przynajmniej zapory ogniowej, aby uniknąć połączeń zdalnych.

andcoz
źródło
uzyskiwanie „Błąd: inicjalizacja modułu nie powiodła się” pactl load-module module-native-protocol-tcp auth-ip-acl=localhost. Czy brakuje mi zależności lub czegoś takiego?
tester
Spróbuj pulseaudio --check ; echo $?sprawdzić, czy serwer pulseaudio jest uruchomiony. Powinien zostać wydrukowany, 0jeśli jest uruchomiony.
andcoz
Na moim komputerze (opensuse 12.1) moduł jest włączony /usr/lib64/pulse-1.1/modules/module-native-protocol-tcp.so. Na jakiej dystrybucji pracujesz?
andcoz
moja lokalna maszyna 0poprawnie echa .. zdalny jest na Ubuntu 11.10, a mój lokalny na 11.04. próbowałem odwołać się do modułu bezpośrednio na mojej lokalnej pactl load-module /usr/lib/pulse-0.9.22/modules/module-native-protocol-tcp.so auth-ip-acl=localhost i dostaję Failure: Invalid argument. Dowolny pomysł? (dzięki za pomoc)
tester
auth-ip-acljest obsługiwany od wersji 0.9.3. Zobacz freedesktop.org/wiki/Software/PulseAudio/Documentation/User/…
andcoz