हर बार जब मैं Skype का उपयोग करना चाहता हूं, तो मुझे ध्वनि वरीयताओं में जाना होगा। और वहां, ऑडियो-इन " वेबकैम " को चालू करें और " म्यूट " बटन को अनचेक करें। यह काफी कष्टप्रद है। क्या हमेशा समान कॉन्फ़िगरेशन रखने का एक तरीका है?
हर बार जब मैं Skype का उपयोग करना चाहता हूं, तो मुझे ध्वनि वरीयताओं में जाना होगा। और वहां, ऑडियो-इन " वेबकैम " को चालू करें और " म्यूट " बटन को अनचेक करें। यह काफी कष्टप्रद है। क्या हमेशा समान कॉन्फ़िगरेशन रखने का एक तरीका है?
जवाबों:
जब pulseaudio चल रहा है तो सभी सेटिंग्स को .pulse
आपके होम में छिपी निर्देशिका में कस्टम कॉन्फ़िगरेशन फ़ाइलों को लगाकर परिभाषित किया जा सकता है । यदि ये फ़ाइल अभी तक मौजूद नहीं है, तो आप /etc/pulse/
टेम्पलेट के रूप में मानक फ़ाइलों का उपयोग कर सकते हैं । अधिकांश प्रविष्टियों में इन फाइलों में मौखिक स्पष्टीकरण हैं।
~/.pulse/default.pa
मॉड्यूल लोड करने और चूक को परिभाषित करने के लिए~/.pulse/client.conf
ध्वनि सर्वर के लिए क्लाइंट को कॉन्फ़िगर करने के लिए~/.pulse/daemon.conf
नमूना दरों और बफ़र्स को परिभाषित करने के लिएअपने वेब कैमरा को डिफ़ॉल्ट स्रोत बनाने के लिए हमें एक टर्मिनल में निम्नलिखित कमांड द्वारा निर्मित सूची के माध्यम से इस स्रोत का नाम और संख्या जानने की आवश्यकता है:
pacmd list-sources
हम फिर निम्नलिखित पंक्ति को इसमें संपादित करते हैं ~/.pulse/default.pa
:
set-default-source [name]
और [name]
वांछित स्रोत के लिए नाम या स्रोत संख्या से प्रतिस्थापित करें । फिर हमें यह सुनिश्चित करने की आवश्यकता है कि इस पंक्ति को जोड़कर स्रोत अनम्यूट किया गया है:
set-source-mute [name]|[#n]> 0
अपने स्रोत का नाम या सूचकांक दें। आप कई अन्य सेटिंग्स जोड़ सकते हैं जो पल्सएडियो विकी (अब मैन पेज पर man pulse-cli-syntax
) में संदर्भित हैं ।
कॉन्फ़िगरेशन फ़ाइलों को बदलने से पहले कमांड लाइन इंटरफ़ेस के माध्यम से पहले सभी कमांड का परीक्षण करने की सिफारिश की जाती है। इसे किसी टर्मिनल में खोला जा सकता हैpacmd
/etc/pulse/default.pa
। ~/.pulse
संपादन से पहले इस फ़ाइल का उपयोग करें या इसे कॉपी करें ।
pacmd list-sources
। अपने डिवाइस के लिए Ie साथ था set-default-source alsa_input.usb-0d8c_USB_PnP_Sound_Device-00-Device.analog-mon
।
मैं मानता हूं कि समस्या यह है कि पल्सेडियो डिफ़ॉल्ट रूप से USB डिवाइस सेट नहीं करता है क्योंकि पल्स शुरू होने पर यह मौजूद नहीं है।
इसके लिए मेरा समाधान उस सिस्टम में हुक करना है जो एक USB डिवाइस कनेक्ट होने पर नोटिस करता है ... UDEV!
BTW, ये निर्देश थोड़ा फंकी हैं, और मैं मान रहा हूं कि आप कमांड लाइन पर सामान बनाने में सहज हैं, और udv फाइल को अपडेट करने के लिए रूट यूजर बन रहे हैं, और स्क्रिप्ट को निष्पादन योग्य बना रहे हैं।
पहला कदम यह है कि अपने वेबकैम में प्लग करें और टाइप करके मैजिक वेंडर और प्रोडक्ट नंबर खोजें
lsusb
मैं एक Microsoft Lifecam का उपयोग कर रहा हूं, और यह इस रूप में दिखाता है
Bus 001 Device 013: ID 045e:072d Microsoft Corp.
महत्वपूर्ण हिस्सा 045e: 072d है
अगला, वेब कैमरा कनेक्ट होने के दौरान, pulseaudio डिवाइस नाम का पता लगाएं। प्रकार
pacmd list-sources
फिर, मैं उस लाइन की तलाश कर रहा हूं जो name:
तब शुरू होती है जब Microsoft लाइफकेम के बारे में कुछ होता है ... यहां यह है
name: <alsa_input.usb-Microsoft_Microsoft___LifeCam_VX-5500-02-VX5500.analog-mono>
तो मेरा pulseaudio डिवाइस नाम होगा alsa_input.usb-Microsoft_Microsoft___LifeCam_VX-5500-02-VX5500.analog-mono
फिर मैंने एक नया udv नियम बनाया, जिसे निकाल दिया जाता है जब विक्रेता के साथ एक USB डिवाइस = 045e और उत्पाद = 072d डाला जाता है। एक नियम बनाने के लिए, /etc/udev/rules.d/
SOMETHING.rules
(मुझे मेरी फ़ाइल कहा जाता है /etc/udev/rules.d/95-webcam-mic.rules
) नामक एक नई फ़ाइल बनाएं ।
इस लाइन को फाइल में डालें
SUBSYSTEMS=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="072d", ACTION=="add", GROUP="audio", RUN+="/usr/local/bin/webcam-mic"
बदलना न भूलें ATTR {idVendor} और ATTR {idProduct} अपने वेबकैम के लिए मूल्यों के साथ।
यह नियम इनपुट के लिए usb डिवाइस को सेट करने के लिए एक स्क्रिप्ट चलाता है, जो कि RUN+="/usr/local/bin/webcam-mic"
हिस्सा है।
त्वरित अवलोकन समय। हर बार जब मैं अपने वेबकैम को जोड़ता हूं तो मैं कमांड चलाना चाहता हूं
pacmd set-default-source alsa_input.usb-Microsoft_Microsoft___LifeCam_VX-5500-02-VX5500.analog-mono
लेकिन कमांड को मेरे (डेस्कटॉप चलाने वाले उपयोगकर्ता) के रूप में चलाने की आवश्यकता है , लेकिन udev रूट उपयोगकर्ता के रूप में चलता है - इसलिए जब udev मेरी कमांड चलाता है तो मुझे अपने उपयोगकर्ता को बदलने के लिए इसकी आवश्यकता होती है तब कमांड चलाएं।
इसलिए हमारे पास 2 विकल्प हैं।
त्वरित और गंदा । Udv नियम बनाओ su james -c pacmd set-default-source...
यह sooo गलत है मैं भी कमांड टाइप करना समाप्त नहीं कर सकता। यदि आप वेबकैम बदलते हैं तो क्या होगा? यदि आप इसे किसी अन्य उपयोगकर्ता के लिए स्थापित करते हैं तो क्या होगा?
थोड़ा क्लीनर । एक ऐसी स्क्रिप्ट चलाएं जो एक डिफॉल्ट फाइल पढ़ती है जिसमें पल्सेडियो डिवाइस नाम और उसमें आपका उपयोगकर्ता नाम है। यदि आप चाहते हैं कि वे फाइल GitHub पर हों। पहले स्क्रिप्ट /usr/local/bin/webcam-mic
। डिफॉल्ट फ़ाइल को /etc/default/webcam-mic
केवल 2 शेल वेरिएबल्स को परिभाषित करने की आवश्यकता है, जैसा कि टिप्पणी में बताया गया है। स्क्रिप्ट रखो /usr/local/bin/
और इसे निष्पादन योग्य बनाओ। उसके बाद /etc/defaults/
अपने उपयोगकर्ता नाम और पल्सेडियो डिवाइस का उपयोग करने के लिए इसे डिफॉल्ट्स फ़ाइल में डालें और संपादित करें।
सौभाग्य!
टकटक द्वारा समाधान मेरे लिए काम नहीं कर रहा था, यहाँ किसी के लिए अभी भी मेरे पास इस समस्या का समाधान है।
टककट द्वारा समाधान के साथ मेरे लिए दो मुद्दे थे। सबसे पहले, मुझे एहसास हुआ कि माइक्रोफ़ोन पर स्विच करने से पहले स्टार्टअप के बाद देरी होने की आवश्यकता है (मैं नीचे दिए गए मेरे समाधान में कमांड 'स्लीप' का उपयोग करता हूं)। इसके अलावा, कमांड 'सेट-डिफॉल्ट-सोर्स' यूएसबी माइक्रोफोन को चालू करने के लिए काम कर रहा था, लेकिन किसी तरह स्काइप इसे पहचान नहीं रहा था और आंतरिक माइक्रोफोन का उपयोग करना जारी रखा।
काम करने के लिए, पहले यह पावुकंट्रोल स्थापित करने के लिए उपयोगी है। Pavucontrol में, 'कॉन्फ़िगरेशन' टैब खोलें, और निरीक्षण करें कि चीजों की जाँच करने के लिए नीचे दिए गए आदेशों के साथ क्या होता है।
फिर, टर्मिनल में प्रवेश करें:
pacmd
वहां से, दर्ज करें:
list-cards
आउटपुट में, इच्छित USB ऑडियो का इंडेक्स नंबर ढूंढें (मेरे मामले में, यह '1' था)। फिर डिफ़ॉल्ट कार्ड और USB कार्ड दोनों के लिए 'प्रोफाइल' के तहत सूचीबद्ध लाइनों पर एक नज़र डालें। ये pavucontrol में सूचीबद्ध समान हैं, और 'ouput: इनपुट + आउटपुट', 'ऑफ', या 'इनपुट: एनालॉग-मोनो' आदि जैसे कुछ हो सकते हैं। फिर भी pacmd कमांड लाइन में, कमांड set-card-profile <index number> <profile name>
को बदलना चाहिए। pavucontrol में सेटिंग्स। हम यहां क्या करना चाहते हैं, केवल डुप्लेक्स से आंतरिक ऑडियो को आउटपुट में स्विच करना है, और यूएसबी को इनपुट करना है।
एक बार उपयुक्त प्रोफ़ाइल मिल जाने के बाद, हम स्टार्टअप के ठीक बाद कुछ सेटिंग्स बदलने के लिए एक स्टार्टअप कमांड बनाना चाहते हैं। स्टार्टअप कमांड बनाने के लिए, डैश खोलें और 'स्टार्टअप एप्लिकेशन' खोजें, फिर 'ऐड' पर क्लिक करें, फिर अपनी पसंद का नाम और नीचे उपयुक्त कमांड दर्ज करें।
परीक्षण और त्रुटि के बाद, मेरा स्टार्ट अप कमांड इस तरह दिख रहा है:
bash -c "sleep 30 && pacmd set-card-profile 0 output:analog-stereo && pacmd set-card-profile 1 off && pacmd set-card-profile 1 input:analog-mono"
स्पष्टीकरण: मैंने पाया कि कमांड 'नींद' आवश्यक थी, इसका मतलब यह है कि कमांड को एक ठहराव के बाद निष्पादित किया जाता है, जिसे मैंने 30 सेकंड में सेट किया है (मुझे लगता है कि यह कम हो सकता है, इसके साथ खेल सकते हैं)। अगला कमांड ('&&' के बाद) केवल आउटपुट के लिए इनपुट + आउटपुट (डुप्लेक्स, जो डिफ़ॉल्ट है) से स्विच करने के लिए डिफ़ॉल्ट (आंतरिक) कार्ड प्रोफाइल प्राप्त करना है। अगला कमांड USB साउंड कार्ड के लिए है (मेरे मामले में, नंबर '1' है)। अंतिम कमांड मोड में 'इनपुट: एनालॉग-मोनो' पर वापस जाने के लिए इसी कार्ड के लिए है
जो काम करता है, उसे खोजने के लिए आपको इन सेटिंग्स के साथ खेलना पड़ सकता है।
अब जब मैं स्टार्टअप करता हूं, तो मेरा यूएसबी माइक्रोफोन 30 सेकंड के बाद उपयोग करने के लिए तैयार होता है, और स्काइप सही माइक्रोफोन का उपयोग करता है।
इसे आज़माएं, अपने शीर्ष पैनल पर स्पीकर आइकन पर क्लिक करें, प्राथमिकताएँ क्लिक करें। वहां आप माइक्रोफ़ोन के लिए एक डिफ़ॉल्ट इनपुट विकल्प का चयन कर सकते हैं और संभवत: इसे ठीक करने के लिए कुछ हार्डवेयर कॉन्फ़िगरेशन बदल सकते हैं।