म्यूट की म्यूट अलसा और पल्सएडियो को म्यूट करता है, लेकिन केवल अलसा को अनम्यूट करता है


20

जब मैं अपने कीबोर्ड पर म्यूट कुंजी को दबाता हूं, तो Alsa मास्टर चैनल और PulseAudio मास्टर चैनल दोनों म्यूट हो जाते हैं, इसे फिर से दबाने से केवल alsa मास्टर चैनल को अनम्यूट करता है, pulseaudio मास्टर चैनल मौन रहता है। परिणाम: कोई आवाज़ नहीं। मुझसे इसका समाधान किस प्रकार होगा?

जवाबों:


11

यह आदेश चलाएँ:

amixer -D pulse set Master 1+ unmute

12
क्या आप समझा सकते हैं कि यह कमांड अन्य उपयोगकर्ताओं को क्या बताती है?
मोनिका को बहाल करना - 17--

1
वह 1+ किसके लिए है? मुझे एमिक्सर के आदमी पृष्ठ में स्पष्टीकरण नहीं मिला।
जारो

अनम्यूट के बजाय टॉगल का उपयोग करना उपयोगी है यदि आप कमांड को हार्डवेयर कुंजी से amixer -D pulse set Master 1+ toggle
बांध रहे हैं

20

यह हालांकि बहुत सरल है।

amixer -D pulse set Master Playback Switch toggle

इसे एक हॉटकी के रूप में "म्यूट \ अनम्यूट" पर सेट करें। वॉल्यूम नियंत्रण को वैसे ही छोड़ा जा सकता है जैसे वे हैं।

मिंट 15 मेट - यह अपने आप से पता लगा, मेरे लिए ठीक काम करता है।


जो कुछ भी है - कट्टर लिनक्स पर अच्छी तरह से काम किया। सफलतापूर्वक म्यूट और अनम्यूट ध्वनि। अब मैंने अपने लैपटॉप पर म्यूट कमांड पर इस कमांड को बाइंड किया, क्योंकि एक डिफ़ॉल्ट सभी चैनलों को अनम्यूट करता है। धन्यवाद
एरिकस

इसने मेरे लिए Ubuntu 14.04 + i3 के साथ काम किया, स्वीकृत जवाब से काम नहीं चला।
इंगो बुर्क

1
amixer -D pulse set Master toggleकरूँगा। Amixer सेट या sset कमांड के लिए एक साधारण मिक्सर कंट्रोल नाम की उम्मीद करता है, और यहां तक ​​कि अगर यह एक पूर्ण मिक्सर नियंत्रण नाम को स्वीकार करता है, तो आपको ऐसे बहु-शब्द नाम को कोट करना होगा। आप playbackइस तरह से कमांड में वैकल्पिक संशोधक का उपयोग कर सकते हैं : amixer -D pulse set Master playback toggleलेकिन यह अनावश्यक है, अगर Masterइसमें कैप्चर क्षमता भी नहीं है। वैकल्पिक संशोधक का उपयोग करके आप यह भी नियंत्रित कर सकते हैं कि कौन-सा चैनल लागू होता है, यदि आपका सिस्टम सराउंड साउंड सक्षम है।
जारो

5

मुझे लिनक्स मिंट डेबियन संस्करण (201204) पर MATE डेस्कटॉप चलाने में भी यही समस्या थी।

"वॉल्यूम अप" क्रिया वॉल्यूम को अनम्यूट करने में सक्षम नहीं थी। मुझे एहसास हुआ कि समस्या पल्सेडियो के साथ थी, लेकिन पैकेज mate-media-gstreamerऔर mate-settings-daemon-gstreamerजहां डिफ़ॉल्ट रूप से स्थापित किया गया था। स्थापित करके mate-media-pulseऔर mate-settings-daemon-pulse(जिसे अनइंस्टॉल mate-media-gstreamerऔर mate-settings-daemon-gstreamer) और Tadam ... "अप वॉल्यूम" कार्रवाई मात्रा फिर अनम्यूट करने के लिए कर रहा था!

मुझे उम्मीद है कि यह आपके लिए भी काम करेगा!


मेरे लिए (डेबियन जेसी पर) काम किया और यह समाधान स्थायी है, जबकि AFAIU समाधान amixer -D pulse set Master xxxमें एक शॉट है, या मैन्युअल रूप से शॉर्टकट के लिए मैप करने की आवश्यकता है। यहां प्रस्तावित समाधान उस तरह दिखता है जैसे यह होना चाहिए।
जेरेम

2

यह पल्सेडियो के साथ एक समस्या है, एल्सा या एमिक्सर के लिए आदेश ठीक से पल्स को अनम्यूट नहीं भेजेंगे। जब एल्सा कमांड एक म्यूट सिग्नल भेजता है तो यह टॉगल कमांड होता है (उसी कमांड को म्यूट / अनम्यूट को भेजें)।

अब pulseaudio में उनके पास अलग म्यूट और अनम्यूट कोड है! बहुत सी रिपोर्टें बताती हैं कि पल्सीडियो स्थापित करने से समस्या हल हो जाएगी, लेकिन कुछ के लिए यह वास्तव में स्वीकार्य उत्तर नहीं है (जैसे कि, क्योंकि पल्स कई ऐप के लिए उपयोगी है)।

तो इसे हल करने के लिए हमें एक स्क्रिप्ट बनाने की जरूरत है,

1- टेक्स्ट एडिटर जैसे गेडिट या माउसपैड में एक नया खाली डॉक्युमेंट बनाएं,

2- इस कोड को डॉक्युमेंट में पेस्ट करें, कोड का सोरस: 2

#!/bin/bash
#### Create ~/.pulse/mute if not exists
ls ~/.pulse/mute &> /dev/null
if [[ $? != 0 ]]
then
    echo "false" > ~/.pulse/mute
fi

####Create ~/.pulse/volume if not exists
ls ~/.pulse/volume &> /dev/null
if [[ $? != 0 ]]
then
    echo "65536" > ~/.pulse/volume
fi

CURVOL=`cat ~/.pulse/volume`     #Reads in the current volume
MUTE=`cat ~/.pulse/mute`          #Reads mute state

if [[ $1 == "increase" ]]
then
    CURVOL=$(($CURVOL + 3277)) #3277 is 5% of the total volume, you can change this to suit your needs.
    if [[ $CURVOL -ge 65536 ]]
    then
        CURVOL=65536        
    fi
elif [[ $1 == "decrease" ]]
then
    CURVOL=$(($CURVOL - 3277))
    if [[ $CURVOL -le 0 ]]
    then
        CURVOL=0        
    fi
elif [[ $1 == "mute" ]]
then
    if [[ $MUTE == "false" ]]
    then
        pactl set-sink-mute 0 1
        echo "true" > ~/.pulse/mute
    exit    
    else
        pactl set-sink-mute 0 0
        echo "false" > ~/.pulse/mute    
    exit
    fi
fi

pactl set-sink-volume 0 $CURVOL
echo $CURVOL > ~/.pulse/volume # Write the new volume to disk to be read the next time the script is run.

3- फ़ाइल का नाम "वॉल्यूम" (कोई एक्सटेंशन की आवश्यकता नहीं है) इसे कहीं पर रखें जिसे आप पा सकते हैं और इसे अपने होम फ़ोल्डर की तरह हटा नहीं पाएंगे

4- फ़ाइल पर राइट-क्लिक करके फ़ाइल को निष्पादन योग्य बनाएं, गुण पर जाएं, फिर अनुमतियाँ टैब पर जाएं, और निष्पादन योग्य को चिह्नित करने के लिए चेक बॉक्स का उपयोग करें, यह स्क्रिप्ट को चलाने की अनुमति देगा। मार्क-फ़ाइल के रूप में executible-जीयूआई

5- इसके बाद हमें कमांड को कीबोर्ड से लिंक करने की आवश्यकता है, कोड के लिए कमांड में वृद्धि, कमी और म्यूट है।

तो कीबोर्ड सेटिंग्स पर जाएं - How-do-i-change-my-keyboard-short-in-xubuntu , कीबोर्ड शॉर्टकट क्षेत्र में, ऐड पर क्लिक करें, फिर खोलें, हमने जो "वॉल्यूम" फाइल बनाई है, उसे खोलें, फिर कमांड जोड़ें वॉल्यूम, रीडिंग वॉल्यूम बढ़ाने या वॉल्यूम म्यूट ect के बाद कोड के लिए । लेकिन उस स्थान के साथ जहां कोड फ़ाइल "/ होम / उपयोगकर्ता नाम / वॉल्यूम म्यूट" से पहले है

फिर इसे कुंजी दबाकर कीबोर्ड पर असाइन करें, या यदि कुंजी पहले से ही उपयोग की जाती है, तो
~ मामले की संभावना है ~ उन्हें ढूंढें और कमांड को बदल दें।

मुख्य शॉर्टकट XF86AudioRaiseVolume, XF86AudioLowerVolume, XF86AudioMute कहलाते हैं । चूँकि केवल म्यूट टूट गया है इसलिए पहले उसको बदलने के प्रयासों पर ध्यान केंद्रित करें।

बग:


मैंने अभी XF86AudioMuteकमांड पर मैप किया है amixer set Master toggle। बढ़ाएँ और कम वॉल्यूम चाबियाँ amixerकमांड के समान मैप की जाती हैं ।
चान-हो सुह

@ चान-होसुह में क्या आपको वही समस्या है? आप चाहें तो इस स्क्रिप्ट की म्यूट कमांड पर कॉल कर सकते हैं, किसी कारण से पल्स मेरी मशीन पर म्यूट को इंटरसेप्ट कर रहा था, एमिक्सर एक टॉगल भेजता है, जिसे केवल म्यूट द्वारा म्यूट के रूप में व्याख्या की जाती है, या बस कुंजी प्रेस को इंटरसेप्ट कर रहा है? मैं एक समान स्क्रिप्ट का उपयोग कर रहा था, जो पहले: वॉल्यूम बार दिखाता था :(, लेकिन यह म्यूट और अनम्यूट करता है, और उनके पास अब सूचनाएं हैं, इसलिए यह सब अच्छा है, टॉगल यह पहले कैसे सेट किया गया था।
Mateo

स्क्रिप्ट में एक छोटा सुधार यह भी है कि वॉल्यूम बढ़ाने / घटाने पर अनम्यूट किया जाए। मैंने वॉल्यूम पर प्रतिक्रिया प्राप्त करने के लिए 'paplay /usr/share/sounds/ubuntu/stereo/message.ogg' भी जोड़ा।
dma

शायद यह पहले अलग था, लेकिन pulseaudio 4.0 के साथ आप क्रमशः कमांड का उपयोग कर सकते हैं pactl set-sink-volume 0 +5%, pactl set-sink-volume 0 -5%और pactl set-sink-mute 0 toggleवॉल्यूम बढ़ाने, वॉल्यूम कम करने और वॉल्यूम टॉगल करने के लिए।
जारो

@jarno हाँ, यह एक विशिष्ट समस्या (बग) को हल करने के लिए था, इसलिए यह निश्चित रूप से तय / प्रासंगिक नहीं है, लेकिन यह एक अच्छा सा हैक रहता है अगर कुछ और काम नहीं करता है
Mateo


1

12.10 को मेरे लिए काम किया:

    #!/bin/sh
    amixer -c 0 sset Master,0 mute
    sleep 5
    amixer -D pulse set Master 1+ unmute

1

केडीई और किमी के उपयोगकर्ताओं के लिए, यदि आप इस स्क्रिप्ट का उपयोग करते हैं, तो आपके पास अभी भी दृश्य प्रतिक्रिया काम कर रही होगी:

#! /bin/bash

DBUS=qdbus 2> /dev/null

case "$1" in
  volup)
        pactl set-sink-mute alsa_output.pci-0000_00_1b.0.analog-stereo 0
        ${DBUS} org.kde.kmix /kmix/KMixWindow/actions/increase_volume com.trolltech.Qt.QAction.trigger
        ;;
  voldn)
        pactl set-sink-mute alsa_output.pci-0000_00_1b.0.analog-stereo 0
        ${DBUS} org.kde.kmix /kmix/KMixWindow/actions/decrease_volume com.trolltech.Qt.QAction.trigger
        ;;
  mute)
        ${DBUS} org.kde.kmix /kmix/KMixWindow/actions/mute com.trolltech.Qt.QAction.trigger
        pactl set-sink-mute alsa_output.pci-0000_00_1b.0.analog-stereo $(${DBUS} org.kde.kmix /Mixers/0/Master_0 org.kde.KMix.Control.mute | sed 's/false/0/g;s/true/1/g')
        ;;
  *)
    echo "Usage: mixctl <volup|voldn|mute>" >&2
    exit 1
    ;;
esac

exit 0

उपयोग:

1) इसे सहेजें ~ ~ / bin / mixctl
2) वॉल्यूम अप / वॉल्यूम डाउन और म्यूट
3 के लिए डिफ़ॉल्ट kmix कीबोर्ड शॉर्टकट अनमैप करें ) 'वॉल्यूम अप', 'वॉल्यूम डाउन' और 'म्यूट' नामक तीन नए कस्टम कीबोर्ड शॉर्टकट बनाएं
- > शॉर्टकट प्रकार: कमांड
-> कमांड के रूप में क्रमशः ~ / बिन / मिक्स्डल वोल्अप , ~ / बिन / मिक्सक्टल वोल्डन और ~ / बिन / मिक्स्डल म्यूट का उपयोग करें


1

मुझे कई Xubuntu 12.04 मशीनों पर एक ही समस्या थी जिसे XFCE 4.10 में अपग्रेड किया गया था। यहां एक बहुत ही त्वरित तरीका है इस समस्या को कमांड लाइन (या एक bashस्क्रिप्ट के साथ ) से हल करें ।

पिछले समाधानों के विपरीत जो स्टॉप-गैप स्क्रिप्ट की पेशकश करते हैं, यह समाधान म्यूट / अनम्यूट बटन के फ़ंक्शन को पूरी तरह से पुनर्स्थापित करता है।

बस एक बार और सभी के लिए समस्या को हल करने के लिए, एक बार निम्नलिखित दो आदेश जारी करें:

$ xfconf-query --channel xfce4-mixer --property /active-card --set PlaybackInternalAudioAnalogStereoPulseAudioMixer --reset
$ xfconf-query --create --channel xfce4-keyboard-shortcuts --property /commands/custom/XF86AudioMute --type string --set 'amixer -D pulse set Master 1+ toggle'

1

मुझे एक सरल समाधान मिला जो इस मंच में मेरे लिए अच्छा काम करता है । विस्तार से, आपको इसे इसमें जोड़ना होगा /etc/asound.conf:

pcm.pulse {
    type pulse
}
ctl.pulse {
    type pulse
}
pcm.!default {
    type pulse
}
ctl.!default {
    type pulse
}

और फिर कमांड होने के साथ म्यूट कुंजी के लिए एक कीबोर्ड शॉर्टकट सेट करें:

amixer set Master toggle

0

आप यहां मिली कमांड को निष्पादित करने के लिए म्यूट बटन को सेट करने के लिए कीबोर्ड सेटिंग्स का उपयोग कर सकते हैं । यद्यपि इस लिंक पर सूचीबद्ध पहली विधि मेरे लिए बेकार थी, लेकिन दूसरा XFCE4 के लिए बहुत अच्छा काम करता है $ pactl set-sink-mute 0 toggle:। माउस क्लिक पर कमांड निष्पादित करने के लिए आप एक स्क्रिप्ट या लॉन्चर भी बना सकते हैं।

FYI करें, यदि आप दालचीनी जैसी चीज़ का उपयोग कर रहे हैं (और संभवत: अन्य सूक्ति-आधारित डेस्कटॉप) user197761 के ऊपर का सुझाव बेहतर है, क्योंकि दालचीनी की ध्वनि एप्लेट पहचानती है कि आयतन म्यूट है: amixer -D pulse set Master Playback Switch toggle(यदि आप इस बाद वाली कमांड को पसंद करते हैं, तो कृपया उसका उत्तर दें) मेरा नहीं है।)

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