降低或增加所有输出的脉冲音频音量

Ted*_*Ted 5 command-line audio pulseaudio audio-volume

我经常更改笔记本电脑的音频设置(有时使用内置插孔端口,有时什么都不用,有时使用 USB 耳机,有时使用笔记本电脑底座中的插孔端口)。我想要键盘快捷键来一次性降低或提高所有输出的音量,因此无论当前哪个音频输出处于活动状态,它都可以工作。实现这一目标的最简单方法是什么?我还看到在 pavucontrol 中,我可以超过 100%,这有时很实用,所以如果命令也能够做到这一点,那就太好了。

我正在运行 Debian 测试、内核 4.9.0-3-amd64 和 pulseaudio 10.0。

dir*_*rkt 11

您需要一个脚本来执行此操作。有喜欢的脚本是控制默认沉,但我还没有看到一个控制所有汇。

您可以使用 获取所有接收器的列表pacmd list-sinks,并使用 设置音量pacmd set-sink-volume,因此您需要执行类似操作

VOLUME='+5%'
for SINK in `pacmd list-sinks | grep 'index:' | cut -b12-`
do
  pactl set-sink-volume $SINK $VOLUME
done
Run Code Online (Sandbox Code Playgroud)

where$VOLUME可以是绝对 ( 150%) 或相对 ( +5%, -5%),也可能是其他格式。

大多数窗口管理器都可以配置为在您按下键时启动脚本或程序,并带有参数。这是最好的方法,但如果您的 WM 没有,那么有像xbindkeys. 因此,您可以以任何您想要的方式进行自定义。

请注意,如果接收器音量超过 100%,Pulseaudio 将开始使用硬件混音器,这会使声音失真。

另请注意,Pulseaudio 允许为每个应用程序(“音频流”)设置音量pamcd set-sink-input-volume。你可以用pacmd list-sink-inputs类似的方式列出它们并设置它们。

这允许您将接收器音量设置为固定级别,因此它们大致相等,而无需使用硬件混音器,并且当您切换接收器时,它将自动具有“正确”的音量。这是我更喜欢的设置。

  • 使用百分比作为 `$VOLUME` 会返回“无法解析体积”错误。将内行更改为 `pactl set-sink-volume $SINK $VOLUME` 有效。谢谢!=) (2认同)