
所以我有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
(或您的機器使用的本機主機位址)。
編輯它應該是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
顯然,您可以簡單地不在脈衝音訊中使用任何身份驗證,但我不能推薦您這個解決方案。至少使用防火牆來避免遠端連線。