ALSA: आउटपुट डिवाइस को अस्थायी रूप से कैसे बदलें


15

मैं एएलएसए में सबसे सरल काम करना चाहता हूं: मेरे टैबलेट के आंतरिक स्पीकर के बजाय यूएसबी-हेडफोन ध्वनि उत्पन्न करना। मैं कॉन्फ़िगर फ़ाइलों को बदलना नहीं चाहता, जैसे कि asound.rcया alsa.confया asound.confस्थायी रूप से हेडफ़ोन को डिफ़ॉल्ट आउटपुट डिवाइस के रूप में सेट करना डिवाइसों का क्रम बदलकर, मैं एक अस्थायी प्रभाव चाहता हूं, बस जब तक मैं हेडफ़ोन को अनप्लग नहीं करता। अजीब बात है, मैं इसका जवाब नहीं दे सकता। है alsamixer(कोई की तरह लगता है) कि ऐसा करने में सक्षम?

सूक्ति में आप आसानी से PulseAudioअपने GUI या CLI इंटरफ़ेस के साथ वर्तमान आउटपुट डिवाइस का चयन कर सकते हैं , लेकिन PulseAudioस्वयं ALSA के शीर्ष पर काम करता है! इसलिए मुझे यह भी आश्चर्य है कि यह ALSA को आउटपुट डिवाइस को बदलने के लिए कैसे मजबूर करता है?


alsamixerइंटरफ़ेस में "सेलेक्ट साउंड कार्ड" विकल्प है, हालांकि मुझे नहीं पता कि क्या वास्तव में आउटपुट डिवाइस सेट करता है।
गोल्डीलॉक्स

1
नहीं, दुर्भाग्य से यह सिर्फ इस साउंड कार्ड के मापदंडों को प्रदर्शित करता है और उन्हें ट्वीक करने की अनुमति देता है, लेकिन इसे आउटपुट पर रीडायरेक्ट नहीं करता है
बोरिस बुर्कोव

नमस्कार, आप alsamixerएक टर्मिनल से निष्पादन की कोशिश कर सकते हैं और F6दूसरे साउंड कार्ड का चयन कर सकते हैं । :)
slackmart

@ sgmart Hi, sgmart, मैंने ठीक यही किया, लेकिन यह उस डिवाइस में ध्वनि स्थानांतरित नहीं करता है, यह सिर्फ अपने मापदंडों को ट्यूनिंग के लिए उस डिवाइस का चयन करता है, न कि आउटपुट को स्ट्रीम करता है।
बोरिस बुर्कोव

4
अलसामिक्सर उपयोगिता में कुछ नियंत्रण हैं: मास्टर, पीसीआई, और इसी तरह। जांचें कि क्या कोई MMलेबल (MM = म्यूट) है, इसलिए Mध्वनि को सक्षम करने के लिए अपने कीबोर्ड से कुंजी का उपयोग करें ।
slackmart

जवाबों:


4

यदि सिस्टम में USB डिवाइस को साउंड कार्ड के रूप में सूचीबद्ध किया गया है, तो आप पैरामीटर की जांच man amixerऔर उपयोग करना चाह सकते हैं unmute

amixer -c 1 set Master playback 100% unmute

अन्य चैनलों (पीसीएम आदि) की भी जांच करें। मैनुअल से उदाहरण हैं:

   amixer -c 1 sset Line,0 80%,40% unmute cap
          will set the second soundcard's left line input volume to 80% and right line
          input to 40%, unmute it, and select it as a source for capture (recording).

   amixer -c 1 -- sset Master playback -20dB
          will set the master volume of the second card to -20dB.  If the  master  has
          multiple channels, all channels are set to the same value.

   amixer -c 1 set PCM 2dB+
          will  increase  the PCM volume of the second card with 2dB.  When both play‐
          back and capture volumes exist, this is applied to both volumes.

   amixer -c 2 cset iface=MIXER,name='Line Playback Volume",index=1 40%
          will set the third soundcard's second line playback volume(s) to 40%

   amixer -c 2 cset numid=34 40%
          will set the 34th soundcard element to 40%

धन्यवाद, जरी, यह काम करता है। मैं ALSA पर मैनुअल पढ़ रहा हूं और एक सवाल है: क्या डिवाइस amixer और alsamixer द्वारा सूचीबद्ध हैं जो वास्तव में हार्डवेयर डिवाइस नहीं हैं, लेकिन ALSA उपकरण, /usr/share/alsa/alsa.conf और दोस्तों में alsa plugins द्वारा बनाए गए हैं? मैं ज्यादातर उन प्लगइन्स के सिंटैक्स को समझता हूं, लेकिन बहुत मौलिक कीवर्ड्स की परिभाषा नहीं पा सकता है, जैसे कि "pcm" या "ctl" या "type"। मैं डॉक्युमेंटेशन डॉक्यूमेंटेशन में कीवर्ड्स की कोई सूची खोजने में असफल रहा: alsa-project.org/alsa-doc/alsa-lib, alsa-project.org/alsa-doc/alsa-lib/conf.html। क्या आप उनके बारे में जानकारी के किसी स्रोत के बारे में जानते हैं?
बोरिस बुर्कोव

8
यह वास्तव में मूल प्रश्न को हल नहीं करता है। आप पैरामीटर सेट कर सकते हैं, लेकिन यह उस कार्ड को नहीं बदलता है जिसके माध्यम से ऑडियो आउटपुट होता है।
अपने आप को

2
यदि यह वास्तव में मूल प्रश्न का उत्तर देता है, तो एक पूर्ण उदाहरण की आवश्यकता है। यह कैसे करता है जो कुछ भी नहीं करता है जो अलसमीक्सर नहीं कर सकता है? स्पष्ट रूप से, अलसमिक्सर एक अलग साउंड कार्ड के माध्यम से आउटपुट पर स्विच नहीं कर सकता। या, मेरे मामले में, मैं भी एक ही साउंड कार्ड के माध्यम से आउटपुट करना चाहता था, लेकिन स्पीकर / हेडफोन के बजाय एचडीएमआई। Pulseaudio इन चीजों को करता है, लेकिन कैसे? इसे एक अच्छा जवाब बनाने के लिए शुरू से लेकर अंत तक के उदाहरणों की आवश्यकता होती है।
कॉलिन कीनन

1
Pitty यह जवाब के रूप में चुना गया है - सवाल बिल्कुल वही है जिसकी मुझे तलाश है: आउटपुट के लिए उपयोग किए गए कार्ड को अस्थायी रूप से कैसे बदलें। हालाँकि, जैसा कि @oneself ने पहले ही उल्लेख किया है, यह उत्तर वास्तव में यह नहीं समझाता है कि यह कैसे करना है। लगभग एक ही शीर्षक के साथ एक नया प्रश्न पूछने पर अब डुप्लिकेट के रूप में बंद होने की संभावना है।
डोमसन

1
@domsson सिर्फ इस एक को वापस लिंक करते हैं और समझाते हैं कि उत्तर से आपकी समस्या हल नहीं हुई। यह सुनिश्चित करना चाहिए कि यह डूप के रूप में बंद नहीं है।
terdon

0

IIUC आप अद्यतन .asoundrcया /etc/asound.confगतिशील रूप से कर सकते हैं । इसलिए दो फाइलों का होना संभव है headphones.confऔर front.confजो आपके डिफ़ॉल्ट उपकरणों को उचित hw:channel,deviceसंख्याओं में सेट करते हैं और फिर उन्हें "एसीपीआई जैक / हेडफोन हेडफोन प्लग" इवेंट पर स्विच करते हैं। मैं यह कोशिश करने वाला हूं, "ln" का उपयोग करके /etc/asound.confकिसी एक से लिंक करने के लिए/etc/sounds/{headphones,front}.conf

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.