riproduzione di un suono / notifica in fringuello su ssh sul mio computer locale


9

Quindi ho finchun client di chat a riga di comando (pensa pidgin) in esecuzione su una macchina remota in cui mi trovo ssh. finchha suoni di notifica e può eseguire un comando quando si verificano determinati eventi, consentendo di passare il file audio in as %s. per esempiomplayer %s

dal computer remoto, quando si verifica la notifica, che tipo di comando è possibile eseguire per riprodurre qualunque cosa %ssi trovi sul mio computer locale?

Risposte:


7

Se si utilizza audio a impulsi come server audio, è possibile utilizzare module-native-protocol-tcpper accettare la connessione tcp dal proprio computer remoto.

Nel seguente esempio, utilizzo un tunnel ssh per inoltrare la richiesta audio dalla macchina remota a quella locale.

Sul computer locale, fare qualcosa del tipo:

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

quindi sul computer remoto è possibile utilizzare paplay

paplay -s 127.0.0.1:9999 soundfile.wav

AGGIUNTO Ho scoperto cheauth-ip-aclnon accettalocalhostcome parametro valido, devi usare127.0.0.1(o qualunque cosa la tua macchina usi l'indirizzo localhost).

EDIT Dovrebbe esseressh -Rnossh -L(stiamo inoltrando una porta remota a una porta locale).


Se hai una vecchia versione di pulse-audio (pre 0.9.3), puoi utilizzare l'autorizzazione basata sui 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

Ovviamente, puoi semplicemente non utilizzare alcuna autenticazione nell'impulso audio ma non posso consigliarti questa soluzione. Utilizzare almeno un firewall per evitare connessioni remote.


ottenere "Errore: inizializzazione del modulo non riuscita" pactl load-module module-native-protocol-tcp auth-ip-acl=localhost. Mi sto perdendo una dipendenza o qualcosa del genere?
tester

Prova pulseaudio --check ; echo $?a verificare se il server pulseaudio è in esecuzione. Dovrebbe stampare 0se in esecuzione.
andcoz,

Sulla mia macchina (opensuse 12.1), il modulo è in /usr/lib64/pulse-1.1/modules/module-native-protocol-tcp.so. Su quale distribuzione stai eseguendo?
andcoz,

la mia macchina locale echo 0correttamente .. il telecomando è su Ubuntu 11.10 e il mio locale è su 11.04. ho provato a fare riferimento al modulo direttamente sul mio locale pactl load-module /usr/lib/pulse-0.9.22/modules/module-native-protocol-tcp.so auth-ip-acl=localhost e ottengo Failure: Invalid argument. Qualche idea? (a proposito grazie per l'aiuto)
tester

auth-ip-aclè supportato dalla versione 0.9.3. Vedi freedesktop.org/wiki/Software/PulseAudio/Documentation/User/…
andcoz
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.