静音键使Alsa和PulseAudio静音,但仅取消静音Alsa

当我按下键盘上的静音键时,Alsa主通道和PulseAudio主通道都被静音,再次按下它只能取消静音alsa主通道,脉冲音频主通道保持静音。 结果:没有声音。 我该如何解决这个问题?

运行此命令:

amixer -D pulse set Master 1+ unmute 

它虽然简单得多。

 amixer -D pulse set Master Playback Switch toggle 

将此设置为“静音\取消静音”的热键。 音量控制可以保持不变。

Mint 15 Mate – 我自己想出来,对我来说很好。

我在Linux Mint Debian Edition(201204)上运行MATE桌面时遇到了同样的问题。

“音量增加”动作无法取消音量。 我意识到问题出在Pulseaudio上,但默认安装的是mate-media-gstreamermate-settings-daemon-gstreamer 。 通过安装mate-media-pulsemate-settings-daemon-pulse (卸载了mate-media-gstreamermate-settings-daemon-gstreamer )和tadam ……“Volume up”动作能够再次取消静音音量!

我希望这对你也有用!

这是pulseaudio的问题,alsa或amixer的命令将无法正确地发送静音到脉冲。 当alsa命令发送静音信号时,它是一个toggle命令(发送相同的命令来静音/取消静音)。

现在在pulseaudio他们有单独的静音和取消静音代码! 许多人报告说,卸载pulseaudio会解决这个问题,但对于一些并不是真正可以接受的答案(就像我一样,因为脉冲对很多应用都很有用)。

所以要解决这个问题,我们需要制作一个脚本,

1-在gedit或mousepad等文本编辑器中创建一个新的空文档,

2-将此代码粘贴到doccument,Soruce of code: 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-接下来我们需要将命令链接到键盘,代码的命令是增加,减少和静音。

所以转到键盘设置 – 如何在i-change-my-keyboard-shortcuts-in-xubuntu中 ,在键盘快捷键区域,单击“添加”,然后打开,打开我们创建的“卷”文件,然后添加命令对于音量后的代码,读取音量增加音量静音等 。 但是代码文件所在的位置就像“/ home / username / volume mute”

然后按键将其分配给键盘,或者如果已经使用了键,
〜最有可能的情况是〜找到它们并替换命令。

关键的快捷方式可能称为XF86AudioRaiseVolume,XF86AudioLowerVolume,XF86AudioMute 。 由于只有静音被打破,所以要集中精力首先改变它。

错误: 1

看到:

https://bugs.launchpad.net/xfce4-volumed/+bug/883485/comments/3

xfce4-mixer有一个设置为active-card ,必须设置为Pulseaudio,否则它将使用Alsa。

12.10为我工作:

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

对于KDE和kmix用户,如果使用此脚本,您仍然可以使用视觉反馈:

 #! /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 " >&2 exit 1 ;; esac exit 0 

用法:

1)将其保存为〜/ bin / mixctl
2)取消映射音量调高/降低音量和静音的默认kmix键盘快捷键
3)创建三个名为“Volume Up”,“Volume Down”和“Mute”的新自定义键盘快捷键
– >快捷键类型:命令
– >命令分别使用〜/ bin / mixctl volup〜/ bin / mixctl voldn〜/ bin / mixctl静音

我在升级到XFCE 4.10的多台Xubuntu 12.04机器上遇到了同样的问题。 这是从命令行(或使用bash脚本)解决此问题的一种非常快捷的方法。

与之前提供间隙脚本的解决方案不同,此解决方案完全恢复了静音/取消静音按钮的function。

只需发出以下两个命令,即可一劳永逸地解决问题:

 $ 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' 

我在这个论坛找到了一个适合我的简单解决方案。 详细地说,您需要将其添加到/etc/asound.conf

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

然后使用以下命令为静音键设置键盘快捷键:

 amixer set Master toggle 

您可以使用键盘设置来设置静音按钮以执行此处找到的命令。 虽然这个链接上列出的第一个方法对我来说没用,但第二个方法适用于XFCE4: $ pactl set-sink-mute 0 toggle 。 您还可以创建脚本或启动程序以在单击鼠标时执行该命令。

仅供参考,如果您正在使用像Cinnamon(以及可能是其他基于gnome的桌面)这样的东西, user197761的上述建议似乎更好,因为肉桂的声音小程序识别音量被静音: amixer -D pulse set Master Playback Switch toggle (如果你喜欢后者)请求,请回答他/她的答案,而不是我的答案。)