我正在尝试使用我的编程脚本来控制音量。如何在 Fedora 15、Ubuntu linux 中执行以下操作?
- 静音/取消静音
- 调高音量和调低音量
注意:请注意,我使用网络 USB 麦克风/扬声器以及模拟麦克风/扬声器。我想向所有人申请以确定。
答案1
您可以使用混合器。它位于alsa-utils
Ubuntu 和 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
。
答案4
佩维克对于 PulseAudio 来说,答案几乎是正确的,但有两点需要提及:
负音量更改命令将生成错误,因为它的负部分将被解释为单独的(无法识别的)选项;您需要在负数之前用双减号关闭选项解析,例如“ -- -5%”
真正的静音状态应该可以使用相同的键进行切换,如果您只是将音量设置为固定值 0,则该状态将不起作用,因此正确的命令是:
pactl set-sink-mute @DEFAULT_SINK@ toggle
LE:第一个提示是否适用可能取决于您正在运行的 PulseAudio 版本或发行版中的其他内容 - 我注意到在 Ubuntu 16 上它可以在没有“--”的情况下工作,如果我添加“--”则失败前面的负百分比。