memainkan suara / notifikasi di finch over ssh di mesin lokal saya

9

Jadi saya punya finch, klien obrolan baris perintah (pikirkan pidgin) berjalan pada mesin jarak jauh yang saya sshmasuki. finchmemiliki suara notifikasi dan dapat menjalankan perintah ketika peristiwa tertentu terjadi, membiarkan Anda meneruskan file suara sebagai %s. misalnyamplayer %s

dari mesin jarak jauh, ketika pemberitahuan terjadi, perintah seperti apa yang bisa saya jalankan untuk memainkan apa pun yang %sada di mesin lokal saya?

penguji
sumber

Jawaban:

7

Jika Anda menggunakan pulsa-audio sebagai server suara, Anda dapat menggunakan module-native-protocol-tcpuntuk menerima koneksi tcp dari mesin jarak jauh Anda.

Pada contoh berikut, saya menggunakan terowongan ssh untuk meneruskan permintaan audio dari mesin jarak jauh ke mesin lokal.

Di mesin lokal, lakukan sesuatu seperti:

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

maka pada mesin jarak jauh Anda bisa menggunakan paplay

paplay -s 127.0.0.1:9999 soundfile.wav

TAMBAH Saya menemukan bahwaauth-ip-acltidak menerimalocalhostsebagai parameter yang valid, Anda harus menggunakan127.0.0.1(atau apa pun mesin Anda menggunakan alamat localhost).

EDIT Seharusnyassh -R, bukanssh -L(kami meneruskan port jarak jauh ke port lokal).


Jika Anda memiliki versi lama audio-pulsa (pra 0.9.3), Anda dapat menggunakan otorisasi berbasis 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

Jelas, Anda tidak bisa menggunakan otentikasi dalam pulsa-audio tapi saya tidak bisa merekomendasikan Anda solusi ini. Gunakan, setidaknya, firewall untuk menghindari koneksi jarak jauh.

andcoz
sumber
mendapatkan "Kegagalan: Inisialisasi modul gagal" pada pactl load-module module-native-protocol-tcp auth-ip-acl=localhost. Apakah saya kehilangan ketergantungan atau sesuatu?
tester
Coba pulseaudio --check ; echo $?periksa apakah server pulseaudio sedang berjalan. Ini harus dicetak 0jika dijalankan.
andcoz
Di komputer saya (opensuse 12.1), modul dalam /usr/lib64/pulse-1.1/modules/module-native-protocol-tcp.so. Distribusi mana yang Anda jalankan?
andcoz
mesin lokal saya menggema 0dengan benar .. remote ada di ubuntu 11.10 dan lokal saya ada di 11.04. Saya mencoba referensi modul langsung di lokal saya pactl load-module /usr/lib/pulse-0.9.22/modules/module-native-protocol-tcp.so auth-ip-acl=localhost dan saya dapatkan Failure: Invalid argument. Ada ide? (btw terima kasih telah membantu)
tester
auth-ip-acldidukung sejak versi 0.9.3. Lihat freedesktop.org/wiki/Software/PulseAudio/Documentation/User/…
andcoz