如何使用命令行改变音量?

90 linux command-line alsa audio

我正在尝试使用我的编程脚本控制音量。如何在 Fedora 15、Ubuntu linux 中执行以下操作?

  1. 静音/取消静音
  2. 提高音量和降低音量

注意:请注意,我使用网络 USB 麦克风/扬声器和模拟麦克风/扬声器。我想向所有人申请以确保。

Dar*_*idl 110

您可以使用amixer。它alsa-utils在 Ubuntu 和 Debian 的软件包中。

amixer不带参数运行以获取有关默认设备控件的概述。

您还可以使用alsamixer不带参数(来自同一个包)来获得更直观的概览。使用 F6 来查看和切换设备。通常,您可能有 PulseAudio 和硬件声卡可供选择。

然后用amixerset命令来设置音量。例如,将主通道设置为 50%:

amixer set Master 50%
Run Code Online (Sandbox Code Playgroud)

Master 是控件名称,应该与您在没有参数的情况下运行时看到的名称相匹配。

请注意该%符号,如果没有它,它将将该值视为 0 - 65536 级别。

如果 PulseAudio 不是您的默认设备,您可以使用-D开关:

amixer -D pulse set Master 50%
Run Code Online (Sandbox Code Playgroud)

评论中指出的其他有用命令:

要增加/减少+/-数字后的音量使用,请使用

amixer set Master 10%+
amixer set Master 10%-
Run Code Online (Sandbox Code Playgroud)

要静音、取消静音或在静音/取消静音状态之间切换,请使用

amixer set Master mute
amixer set Master unmute
amixer set Master toggle
Run Code Online (Sandbox Code Playgroud)

另请注意,可能有两种不同的百分比比例,默认为原始比例,对于某些设备,基于 decibel更自然比例,也由alsamixer. 使用-M使用后者。

最后,如果您只对 PulseAudio 感兴趣,您可能想查看一下pactl(请参阅其他答案之一)。

  • 另外,您可以通过`amixer set Master 10%+`和`amixer set Master 10%-`来增加或减小音量 (16认同)
  • 瑟琳是对的。这不起作用。有效的是:`amixer -D pulse sset Master 50%` (7认同)
  • 谢谢!有两种方法可以做到这一点 1. 作为您的绝佳示例:混音器设置主静音;amixer 设置 Master 取消静音;2. yum -y 安装xdotool;xdotool 键 XF86AudioRaiseVolume; xdotool 键 XF86AudioLowerVolume; (4认同)
  • 这在 Ubuntu 中不起作用。 (2认同)
  • 我不同意@Cerin。这现在适用于 Ubuntu LTS 12。注意 master 中的 `M` 是**大小写敏感**(必须是大写)。 (2认同)

小智 36

静音:

amixer -D pulse sset Master mute
Run Code Online (Sandbox Code Playgroud)

取消静音:

amixer -D pulse sset Master unmute
Run Code Online (Sandbox Code Playgroud)

要将音量调高 5%:

amixer -D pulse sset Master 5%+
Run Code Online (Sandbox Code Playgroud)

将音量降低 5%:

amixer -D pulse sset Master 5%-
Run Code Online (Sandbox Code Playgroud)

  • 您还可以在后面的命令中添加 unmute 以在更改音量时自动取消静音(为了方便):`amixer -D pulse sset Master unmute 5%+` (2认同)

pev*_*vik 21

pactl/ pacmd(与 不同amixer)允许将音量增加超过 100% :-)。

pactl set-sink-mute 0 toggle  # toggle mute, also you have true/false
pactl set-sink-volume 0 0     # mute (force)
pactl set-sink-volume 0 100%  # max
pactl set-sink-volume 0 +5%   # +5% (up)
pactl set-sink-volume 0 -5%   # -5% (down)
Run Code Online (Sandbox Code Playgroud)

pavucontrol(与 不同alsamixer)中可以手动设置超过 100% 。

注意:如果你想在不同接收器的不同主机上共享相同的命令,你可以使用接收@DEFAULT_SINK@器而不是数字0

pactl set-sink-volume @DEFAULT_SINK@ +5%
Run Code Online (Sandbox Code Playgroud)

您使用pactl set-default-sink my-sink-name(list names with pactl list short sinks)设置默认接收器。

来源askubuntu.comwiki.archlinux.org

  • 例如,“pactl set-sink-mute 0toggle”,即变为“pactl set-sink-mute "$(pactl listshort sinks | awk '/RUNNING$/{print $1})"toggle” (3认同)
  • 这可能不起作用,因为“0”索引接收器并不总是当前活动的接收器(例如,蓝牙耳机往往是索引“1”),并且无论出于何种原因“@DEFAULT_SINK@”并不总是能够返回主动水槽。您可以通过以下命令手动查找活动接收器:`pactl list Short sinks | awk '/RUNNING$/{print $1}` (2认同)

Ale*_*der 7

更高的音量:

amixer set Master 3%+
Run Code Online (Sandbox Code Playgroud)

较低的音量:

amixer set Master 3%-
Run Code Online (Sandbox Code Playgroud)

静音切换:

amixer set Master toggle
Run Code Online (Sandbox Code Playgroud)

i3/ 的示例键绑定sway,命令位于exec

bindsym XF86AudioRaiseVolume exec amixer set Master 3%+
bindsym XF86AudioLowerVolume exec amixer set Master 3%-
bindsym XF86AudioMute exec amixer set Master toggle
bindsym Ctrl+$alt+Up  exec amixer set Master 3%+
bindsym Ctrl+$alt+Down exec amixer set Master 3%-
Run Code Online (Sandbox Code Playgroud)