终端命令设置音量?


96

我有一个外部声卡,大多数情况下都工作正常,除了第一次插入声卡或打开笔记本电脑时,音量设置为100%。即,总体系统音量,如声音指示器所示。

我正在寻找的是一个终端命令,该命令会将音量设置为50%,这样我就可以在登录时运行它,而不必担心如果我忘了打开,我播放的第一个音频会大吼大叫调低音量。哪些命令可以更改音量,即声音指示器中的音量?

我在gsettings和dbus中闲逛,但是找不到任何可以让我像这样设置系统音量的东西。我确实了解alsamixer,但这不是我正在寻找的解决方案,因为这不允许我使用声音指示器或笔记本电脑的多媒体键更改音量。


@rajagenupula他想减少与GUI相同的音量。在这种情况下,ALSA不起作用,因为它不是由ALSA控制,而是由Pulseaudio控制。i.stack.imgur.com/9C8Z2.png
Braiam

Answers:


120

此答案的一部分来自使用命令行设置麦克风输入音量?,放在这里为您提供方便。

音量增加5%

amixer -D pulse sset Master 5%+

减少5%

amixer -D pulse sset Master 5%-

将音量设置为50%

amixer -D pulse sset Master 50%

如果您使用的是ALSA,则混合器可帮助您进行脚本编程。

当丢弃amixer --help在终端命令,你会看到这样的事情:

在此处输入图片说明

取决于您的声卡,音量可能与我的不同,但是您可以alsamixer在终端中使用以检查声卡中的哪些音量和哪些功能,您可以调用命令来根据需要设置音量。

在此处输入图片说明

在我的示例中,使用我的主声卡(我有2个:嵌入式和PCI声卡),级别从0到100,通过这种方式,我可以通过插入一个声卡来更改声卡中所需输入/输出的音量。终端下一条命令:

amixer -c 0 set Front 50DB 
amixer -c 0 set Front 64DB 

在第一个命令中,结果将前面板输出设置为78%级别,第二个命令将前面板输出设置为100%级别。

为了收集与您的混音器控件有关的信息,请删除amixer不带参数的命令,您将获得一个列表。或指出您希望查看哪个音频设备的控件列表 amixer -c X(其中“ X”是您的音频设备的编号)。

顺便说一句:请记住,DB值是对数而非线性计算的。

请记住,此命令允许您在当前使用的任何声音设备上控制参数。

祝好运!


1
值得注意的是,如果您没有“主”控制器或“主”控制器无法更改实际输出音量,则可能是声卡使用错误。F6alsamixer--card namixer改变声卡。
Pooyan Khosravi 2015年

那是个很好的观点!@PooyanKhosravi,即使您可以通过单击“ -c X”(其中“ X”是声卡的编号)从命令行调用希望自动执行的声卡,也很高兴知道您提供的信息。非常感谢你!
2015年

pactl(与不同amixer)允许将音量增加100%以上(参见:pavucontrol:)
pevik

80

您可以使用PulseAudio本身来做到这一点(我不建议您使用ALSA,因为那样您就不能使用GUI来提高/降低音量)。

使用pactl:您可以如下设置特定设备的卷:

pactl set-sink-volume 0 +10%

这使音量提高了10%。如果您希望降低10%:

pactl set-sink-volume 0 -10%

如果您需要50%的音量:

pactl set-sink-volume 0 50%

如果您需要晃动整个地方:

pactl set-sink-volume 0 150%

您可以使用百分比或整数,但是整数很慢,可能不是您所需要的。

pactl/ pacmd(不像amixer)允许将音量增加100%以上:-)。


3
如果您使用的是耳机,请尝试将零增加到一:pactl set-sink-volume 1 50%
Smile4ever 2014年

13
如果要在具有不同接收器的不同主机上共享相同的命令,则可以将其@DEFAULT_SINK@用作接收器,而不是number 0。您将默认接收器设置为pactl set-default-sink my-sink-name(使用列出名称pactl list short sinks)。
pevik

3
正在获取:Failed to get sink information: No such entity,如何解决此问题?-编辑,我还需要使用一个水槽0pactl list short sinks可以使用第一个。例如,此命令的工作原理:pactl set-sink-volume $(pactl list short sinks | head -n1 | cut -f1) 50%
ideaman42 '18

23

amixer set 'Master' 10%+- 增加最大声音10%

amixer set 'Master' 10%-- 降低最大声音10%

amixer set 'Master' 10% -获得最大声音的10%

amixer set 'Master' 80% -获得最大声音的80%

..等

如果要将音量设置为“ Master”以外的其他音量,请通过以下方式检查列表:

amixer scontrols


您可能还想签出alsamixerpacmd


6

答案较晚,但对某人可能有用。


您可以使用以下命令控制电流接收器的音量

  • 提高音量pactl set-sink-volume @DEFAULT_SINK@ +1000

  • 较低的音量pactl set-sink-volume @DEFAULT_SINK@ -1000

  • 静音pactl set-sink-mute @DEFAULT_SINK@ toggle

您可以使用以下值来控制音量:

整数

  • 具体值: <number>
  • 增加: +<number>
  • 减少: -<number>

例:

pactl set-sink-volume @DEFAULT_SINK@ 50000 将音量设置在76%左右

线性因子

  • 具体值: <number>.<number>
  • 增加: +<number>.<number>
  • 减少: -<number>.<number>

例:

pactl set-sink-volume @DEFAULT_SINK@ 0.44\ 将音量设置在76%左右

佩尔琴塔耶

  • 具体值: <number>%
  • 增加: +<number>%
  • 减少: -<number>%

例:

pactl set-sink-volume @DEFAULT_SINK@ 76% 将音量设置在76%左右

分贝值

警告:除非使用耳机,否则请勿尝试使用分贝值,除非您知道自己在做什么,否则可能会损坏耳部

  • 具体值: <number>dB
  • 增加: +<number>dB
  • 减少: -<number>dB

例:

pactl set-sink-volume @DEFAULT_SINK@ 0.0dB 将音量设置为100%


来源Arch Wikipactl手册页


+1!唯一对我立即有效的解决方案。
dboris
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.