पल्सीडियो लूपबैक ऑडियो आउटपुट डिवाइस को अनलोड करता है


12

मैं यह पता लगाने की कोशिश कर रहा हूं कि पल्सेडियो लूपबैक आउटपुट अनलोड कैसे करें। मैं स्ट्रीमिंग के लिए अपने माइक्रोफोन और सिस्टम ऑडियो को कैप्चर करने के लिए लूपबैक मिक्स बनाने के लिए pulseaudio का उपयोग कर रहा हूं। हर बार मैंने अपनी स्क्रिप्ट लॉन्च की जिसमें यह कोड है:

pactl load-module module-null-sink sink_name=mix 
pactl load-module module-loopback sink=mix
pactl load-module module-loopback sink=mix

avconv ...

pactl unload-module module-loopback

यह बंद होने के बाद दो आउटपुट डिवाइस को पीछे छोड़ देता है। अनलोड-मॉड्यूल कमांड को रिकॉर्डिंग से छुटकारा मिल जाता है, लेकिन मैं आउटपुट के लिए कमांड नहीं ढूंढ सकता।

जवाबों:


18

मॉड्यूल उतारने का उपयुक्त तरीका

पल्स ऑडियो में लोड किए गए मॉड्यूल को उतारने का काम मॉड्यूल के इंडेक्स नंबर द्वारा किया जाता है, जिसे लोड करने पर दिया जाता है:

pactl load-module module-null-sink sink_name=test
24

उपरोक्त उदाहरण में Pulseaudio सर्वर ने मॉड्यूल को इंडेक्स आईडी के साथ लोड किया 24। इस मॉड्यूल को निम्न कमांड से लोड किया जा सकता है:

pactl unload-module 24

आपकी स्क्रिप्ट के आउटपुट को पार्स करना होगा pactl

मामले में हमें पता नहीं है कि मॉड्यूल संख्या हम निम्नलिखित कमांड जारी कर सकते हैं जो संख्या और मॉड्यूल नाम प्रदर्शित करेगा:

pactl list short modules

नए संस्करण नाम से भी उतारने की अनुमति देते हैं:

pactl unload-module <name>

त्वरित और गंदी विधि

यदि पल्सएडियो को ऑटो-स्पॉनिंग दानव के रूप में स्थापित किया जाता है (जो कि डिफ़ॉल्ट बेजावॉर होना चाहिए) तो हम पल्सएडियो सर्वर के एक रीसेट के साथ लॉगिन के बाद लोड किए गए सभी मॉड्यूल को जल्दी से अनलोड कर सकते हैं, जो हमारे default.paद्वारा परिभाषित डिफ़ॉल्ट मॉड्यूल को लोड करने के लिए चल रहा है:

pulseaudio -k

यह आपकी स्क्रिप्ट से सभी मॉड्यूल को प्रभावी ढंग से अनलोड करेगा और आउटपुट के लिए डिफ़ॉल्ट सिंक को लोड करेगा।


इस बात का उल्लेख करते हुए कि सभी धाराएं अपनी धाराओं में कटौती करने से नहीं उबरेंगी।
औरेलिया

सिंक नाम से मॉड्यूल नंबर प्राप्त करें: MODULE_NUMBER=$(pacmd list-sinks | grep -E "^\s*name:|^\s*module:" | grep -A 1 -E "^\s*name: <MY-SINK-NAME>" | grep -oP "module: \K[0-9]+")जहां MY-SINK-NAMEहै यह क्या कहते हैं। < >कोड में रखें !
क्रिस्बडेव

1
@ क्रिसविडेव: धन्यवाद, अधिक सामान्य aproach के लिए मॉड्यूल सूचकांक कैसे प्राप्त करें, इस पर एक पंक्ति जोड़ी।
ताकत

महान, फिर यह बन जाता है pactl list short modules | grep "sink_name=MY-SINK-NAME" | cut -f1 | xargs -L1 pactl unload-module:। इसका नाम के सभी मॉड्यूल को हटाने का लाभ है MY-SINK-NAME(सिंक नाम अद्वितीय नहीं हैं)।
क्रिस्बडेव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.