在我的本機電腦上透過 ssh 在 finch 中播放聲音/通知

在我的本機電腦上透過 ssh 在 finch 中播放聲音/通知

所以我有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

顯然,您可以簡單地不在脈衝音訊中使用任何身份驗證,但我不能推薦您這個解決方案。至少使用防火牆來避免遠端連線。

相關內容