如何使用调音台切换声音?


48

包括Natty在内,我始终能够使用“”来切换(静音/取消静音)“主”音量

amixer sset Master toggle

我链接到CompizConfig-Manager中的边缘绑定的命令。

现在,在安装Oneiric之后,该命令只会使声音静音,而不会取消静音。我什至在终端机中尝试过,但也无法正常工作。它将' Mono:Playback 68 [78%] [-14.25dB] [off] '更改为'... [on]',但声音保持静音,因此我必须通过扬声器中的'sound-indicator'将其取消静音面板。

我怎样才能再次工作?自Natty以来发生了什么变化?有人知道“声音指示器”用来切换音量的命令吗?


更让人奇怪的是:在我的另一台笔记本电脑上,我从Natty升级到Oneiric,而不是全新安装,仍然可以使用。
joschi 2011年

Answers:


51

这适用于我在13.04上静音和取消静音:

amixer -D pulse set Master 1+ toggle

它指定脉冲音频以确保取消静音,取消静音。


在lubuntu 13.10上工作。一直在寻找WEEKS!
luisgonzalez

1
编辑:它仅在终端中作为命令运行时有效。但是,当我尝试配置为按键绑定时,我得到:无法访问主目录:权限被拒绝ALSA lib pulse.c:243:(pulse_connect)PulseAudio:无法连接:连接被拒绝的混音器:混频器的附加脉冲错误:连接被拒绝
luisgonzalez

5
没有该1+参数,它的效果甚至更好。
J. Katzwinkel 2014年

3
仍可在17.10(有效)中使用。我正在使用它进行i3媒体绑定:bindsym XF86AudioMute exec --no-startup-id amixer -D pulse set Master 1+ toggle
Joel

2
1+的原因是什么?
Gayan Weerakutti

16

我正在使用此脚本作为解决方法:

#!/bin/bash

CURRENT_STATE=`amixer get Master | egrep 'Playback.*?\[o' | egrep -o '\[o.+\]'`

if [[ $CURRENT_STATE == '[on]' ]]; then
    amixer set Master mute
else
    amixer set Master unmute
    amixer set Front unmute
    amixer set Headphone unmute
fi

amixer scontents在调用之前amixer set Master mute和调用之后进行了比较,并使用GUI取消了对所有内容的静音以找出需要取消静音的内容。


  1. 带有声音输入amixer scontents > ~/before(您将获得包含所有声音通道状态的文件)
  2. 然后使用 amixer set Master toggle
  3. 创建第二个香奈儿状态文件 amixer scontents > ~/after
  4. 再次切换声音amixer set Master toggle,应该使用该声音将音量调回到第一个切换命令之前的水平
  5. 创建第三个文件 amixer scontents > ~/afterafter

现在,您具有三个文件,它们告诉您用于普通声音的音色通道的状态,它们被静音amixer set Master toggle并且通过再次使用相同命令取消静音不会再次打开。

要轻松比较文件并查看差异(通道被静音并且以后不会取消静音),您可以meld从软件中心使用。启动它,打开三个文件,然后在滚动条上可以看到文件之间的区别。使用找到的香奈儿名称将它们添加到上述脚本中。


不幸的是,脚本只能使声音静音,但
不能取消

那可能是因为您需要取消静音的东西没有像在我的系统上那样被称为“前”和“耳机”。
Jim Hunziker

我还做了一个比较,发现该脚本在我的计算机上无法正常工作,现在可以正常工作了。非常感谢。
joschi 2011年

5

我无法静音以正确切换。无论我使用CLI并键入Amixer sset Master切换键还是敲击HP pavillion媒体切换键,我都得到相同的结果:如果声音打开并起作用,它将自动关闭Master通道和PCM通道。然后,当我再次按下拨动开关(cli或key)时,它总是打开Master,但使PCM静音。对于我的钻机(运行Xubuntu Oneric的HP Pavilion DV6),这意味着即使打开了主机,声音也会关闭。从CLI运行时-同样的结果。如果使用cli切换PCM,即使它正确切换PCM,它也将关闭主通道,并且不会再次打开。

起作用的脚本是:

#!/bin/bash
    if amixer -c 0 get Master | grep -q off
then
    amixer set Master unmute
    amixer set PCM unmute

else
    amixer set Master mute
fi

然后,我使用Xubuntu键盘绑定(设置>设置管理器>键盘>应用程序快捷方式)浏览到脚本(我将其称为sndfx.sh并通过右键单击thunar并将其设置为可执行文件,将其设置为可执行文件)。然后,我通过点击该键为其分配了HP Pavilion快捷键。现在,它可以正确切换-太棒了。希望这对其他人有帮助。

和平


2

如果我没记错的话,那是一个导致其他混音器通道静音和取消静音的错误。要静音,请尝试

搅拌机设置主0;

取消静音尝试

搅拌机设置Master 1%+; 调音台设置Master 7dB +;


这些命令有效,但是它们不允许我使用可以与边缘绑定结合的单个命令来切换音量。
joschi 2011年

1
如果有人对相关的错误报告感兴趣,请参见此处
joschi 2011年


1

如果要替换.lircrc中的amixer以便使用lirc进行远程控制,可以尝试以下几行。确保已安装xmacro。音量控制现在可以再次使用。

begin
        prog = irexec
        button = KEY_VOLUMEUP
        repeat = 1
        delay = 2
        config = echo KeyStrPress XF86AudioRaiseVolume KeyStrRelease XF86AudioRaiseVolume | xmacroplay $DISPLAY
end
begin
        prog = irexec
        button = KEY_VOLUMEDOWN
        repeat = 1
        delay = 2
        config = echo KeyStrPress XF86AudioLowerVolume KeyStrRelease XF86AudioLowerVolume | xmacroplay $DISPLAY
end
begin
        prog = irexec
        button = KEY_MUTE
        config = echo KeyStrPress XF86AudioMute KeyStrRelease XF86AudioMute | xmacroplay $DISPLAY
end

0

技巧是使扬声器或耳机状态遵循主通道的状态,这取决于您是否插入了耳机。这个脚本可以在我古老的Dell Latitude笔记本电脑上为我完成:

#!/bin/bash

amixer -q sset Master toggle

MASTER_STATE=`amixer get Master | awk -F"dB] " 'NR == 5 {print $2;}'`
HEADPHONES_PLUGGED=`amixer contents | grep -A 2 Headphone\ Jack | awk -F"=" 'NR == 3 {print $2;}'`

if [[ $HEADPHONES_PLUGGED == 'on' ]]; then
    SLAVE="Headphone"
else
    SLAVE="Speaker+LO"
fi

if [[ $MASTER_STATE == '[on]' ]]; then
    amixer -q sset $SLAVE unmute
else
    amixer -q sset $SLAVE mute
fi

您可能需要使用计算机上的混音器检查频道,并相应地更改SLAVE定义。HEADPHONES_PLUGGED定义中的“ Headphone \ Jack” grep字符串也可能需要其他内容。


-1

蛮力解除静音:

for i in $(amixer |grep -o \'.*\'); do amixer set $i unmute; done

2
我认为取消80台以上的设备静音不是一个好主意。这包括麦克风,这可能导致不想要的反馈回路。做一个for i in $(amixer |grep -o \'.*\'); do echo amixer set $i unmute; done之前,看看会做什么。
用户未知
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.