![降低或增加所有输出的脉冲音频音量](https://linux22.com/image/114451/%E9%99%8D%E4%BD%8E%E6%88%96%E5%A2%9E%E5%8A%A0%E6%89%80%E6%9C%89%E8%BE%93%E5%87%BA%E7%9A%84%E8%84%89%E5%86%B2%E9%9F%B3%E9%A2%91%E9%9F%B3%E9%87%8F.png)
我经常更改笔记本电脑的音频设置(有时使用内置插孔端口,有时什么都不使用,有时使用 USB 耳机,有时使用笔记本电脑扩展坞中的插孔端口)。我想要使用键盘快捷键来降低或提高音量一次用于所有输出,因此无论当前哪个音频输出处于活动状态,它都可以工作。实现这一目标的最简单方法是什么?我还看到,在 pavucontrol 中,我可以超过 100%,这有时很实用,所以如果该命令也能够做到这一点,那就太好了。
我正在运行 Debian 测试、内核 4.9.0-3-amd64 和pulseaudio 10.0。
答案1
您需要一个脚本来执行此操作。有类似的脚本这控制默认接收器,但我还没有看到一个控制所有接收器的。
您可以使用 获取所有接收器的列表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
其中$VOLUME
可以是绝对 ( 150%
) 或相对 ( +5%
, -5%
),也可能是其他格式。
大多数窗口管理器都可以配置为在您按键时启动带有参数的脚本或程序。这是最好的方法,但如果您的 WM 没有,可以使用诸如xbindkeys
.因此您可以按照您想要的任何方式进行定制。
请注意,如果接收器音量超过 100%,Pulseaudio 将开始使用硬件混音器,这可能会使声音失真。
另请注意,Pulseaudio 允许使用 来设置每个应用程序(“音频流”)的音量pacmd set-sink-input-volume
。您可以列出它们pacmd list-sink-inputs
并进行类似的设置。
这允许您将水槽音量保持在固定水平,因此它们大约相等,而无需使用硬件混合器,并且当您切换水槽时,它将自动具有“正确”的音量。这是我更喜欢的设置。