मेरे लोकल मशीन पर ssh पर फिंच में साउंड / नोटिफिकेशन बजाना


9

इसलिए मेरे पास finchएक रिमोट मशीन पर चलने वाली कमांड लाइन चैट क्लाइंट (थिंक पिजिन) है sshfinchके पास कुछ ध्वनियाँ होने पर अधिसूचना ध्वनियाँ होती हैं और आप एक कमांड चला सकते हैं, जिससे आप ध्वनि फ़ाइल को पास कर सकते हैं %s। जैसेmplayer %s

रिमोट मशीन से, जब अधिसूचना होती है, तो मैं %sअपने स्थानीय मशीन पर जो कुछ भी हो उसे चलाने के लिए किस तरह की कमांड चला सकता हूं ?

जवाबों:


7

यदि आप पल्स-ऑडियो का उपयोग साउंड सर्वर के रूप में करते हैं, तो आप 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(या जो भी आपकी मशीन लोकलहोस्ट पते का उपयोग करती है)।

EDIT यह होना चाहिएssh -R, नहींssh -L(हम रिमोट पोर्ट को स्थानीय पोर्ट पर अग्रेषित कर रहे हैं)।


यदि आपके पास पल्स-ऑडियो (प्री 0.9.3) का पुराना संस्करण है, तो आप कुकी आधारित प्राधिकरण का उपयोग कर सकते हैं।

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

जाहिर है, आप बस पल्स-ऑडियो में किसी भी प्रमाणीकरण का उपयोग नहीं कर सकते हैं लेकिन मैं आपको इस समाधान की सिफारिश नहीं कर सकता। रिमोट कनेक्शन से बचने के लिए कम से कम, एक फ़ायरवॉल का उपयोग करें।


"विफलता: मॉड्यूल इनिशियलाइज़ेशन विफल" हो रहा है pactl load-module module-native-protocol-tcp auth-ip-acl=localhost। क्या मुझे एक निर्भरता या कुछ याद आ रही है?
परीक्षक

pulseaudio --check ; echo $?यह देखने की कोशिश करें कि क्या pulseaudio सर्वर चल रहा है। 0अगर चल रहा है तो इसे प्रिंट करना चाहिए ।
andcoz

मेरी मशीन पर (12.1 खुलता है), मॉड्यूल अंदर है /usr/lib64/pulse-1.1/modules/module-native-protocol-tcp.so। आप किस वितरण पर चल रहे हैं?
andcoz

मेरी लोकल मशीन इकोस 0ठीक से .. रिमोट ubuntu 11.10 पर है और मेरा लोकल 11.04 पर है। मैंने अपने स्थानीय पर सीधे मॉड्यूल को संदर्भित करने की कोशिश की pactl load-module /usr/lib/pulse-0.9.22/modules/module-native-protocol-tcp.so auth-ip-acl=localhost और मुझे मिल गया Failure: Invalid argument। कोई उपाय? (btw मदद करने के लिए धन्यवाद)
परीक्षक

auth-ip-aclसंस्करण 0.9.3 के बाद से समर्थित है। देखें freedesktop.org/wiki/Software/PulseAudio/Documentation/User/...
andcoz
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.