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

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

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

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

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

答案1

您可以使用混合器。它位于alsa-utilsUbuntu 和 Debian 的软件包中。

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

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

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

amixer set Master 50%

Master是控件名称,应与您在不带参数运行时看到的名称相匹配。

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

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

amixer -D pulse set Master 50%

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

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

amixer set Master 10%+
amixer set Master 10%-

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

amixer set Master mute
amixer set Master unmute
amixer set Master toggle

另请注意,可能有两种不同的百分比比例,默认原始比例和对于某些设备而言基于分贝的更自然的尺度,也被 所使用alsamixer。用来-M使用后者。

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

答案2

静音:

amixer -D pulse sset Master mute

取消静音:

amixer -D pulse sset Master unmute

要将音量调高 5%:

amixer -D pulse sset Master 5%+

要将音量调低 5%:

amixer -D pulse sset Master 5%-

答案3

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)

pavucontrol在(与)中可以进行超过 100% 的手动设置alsamixer

笔记:如果你想在不同的主机上使用不同的接收器共享相同的命令,你可以使用@DEFAULT_SINK@as a sink 而不是 number 0

pactl set-sink-volume @DEFAULT_SINK@ +5%

pactl set-default-sink my-sink-name您可以使用(列出名称)设置默认接收器pactl list short sinks

来源askubuntu.com,wiki.archlinux.org

答案4

佩维克对于 PulseAudio 来说,答案几乎是正确的,但有两点需要提及:

  • 负音量更改命令将生成错误,因为它的负部分将被解释为单独的(无法识别的)选项;您需要在负数之前用双减号关闭选项解析,例如“ -- -5%”

  • 真正的静音状态应该可以使用相同的键进行切换,如果您只是将音量设置为固定值 0,则该状态将不起作用,因此正确的命令是:

pactl set-sink-mute @DEFAULT_SINK@ toggle

LE:第一个提示是否适用可能取决于您正在运行的 PulseAudio 版本或发行版中的其他内容 - 我注意到在 Ubuntu 16 上它可以在没有“--”的情况下工作,如果我添加“--”则失败前面的负百分比。

相关内容