![防止应用程序在 Linux 上控制主音量](https://linux22.com/image/1362939/%E9%98%B2%E6%AD%A2%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%9C%A8%20Linux%20%E4%B8%8A%E6%8E%A7%E5%88%B6%E4%B8%BB%E9%9F%B3%E9%87%8F.png)
每当我更改 VLC、Rhythmbox 或 YouTube 视频的音量时,它都会更改主音量,即系统音量。我该如何防止这种情况发生?
我正在运行带有 xfce4 的 Debian 7.0.0 (wheezy),它似乎使用 PulseAudio,我对此并不熟悉。以下是 xfce 附带的“Mixer”应用程序的屏幕截图:
是的,我尝试取消选中那里的“链”图标。我安装了pavucontrol
,但似乎没有选项可以更改它:
答案1
该 Gentoo wiki 文章可能适用于此处:PulseAudio 每个应用程序的音量控制:
PulseAudio 支持每个应用程序的音量控制,但默认情况下,这并没有多大用处,因为您只能从 pulseaudio 音量控制实用程序控制这些音量。这意味着在像 Audacious 这样的应用程序中,当输出设备设置为 PulseAudio 并且音量控制设置为硬件时,它将调整主音量控制,而不是每个应用程序的音量控制。
要修复此行为,请在
/etc/pulse/daemon.conf
flat-volumes = no
现在,每当 Audacious 调整音量时,它都会仅调整 Audacious 的音量,因此不会有多个应用程序争夺主音量控制。
答案2
如果我正确理解了您的问题,那么这就是我找到的解决方案:
问题
当应用程序控制音量(例如,将其设置为最大)时,它会影响系统音量级别,使应用程序的音量级别保持原样,有效地“限制”它们,需要pavucontrol
每次都重新调整。
Initial settings:
system |========o--------|
application |========o--------|
Controlling application adjusts:
system |================o|
application |========o--------|
Result when bringin system volume level down again:
system |========o--------|
application |===o-------------|
解决方案
在我的例子中,设置有三个不同的位置,似乎允许配置pulseaudio-daemon:
/etc/pulse/daemon.conf
~/.pulse/daemon.conf
~/.config/pulse/daemon.conf
到分离主控制(这通常是系统范围的硬件音量控制映射到的内容)并让应用程序控制自己的音量,而两者之间不会互相影响,以下方法对我有用:
- 开始
flat-volumes=no
2.
- 确保
flat-volumes
1. 或3.
- 重新开始脉冲音频:
pulseaudio -k
pulseaudio --start
结果
让
音量为滑块控件的值,
音量增益是震动邻居的有效声压
- 结果是
- 拥有自己的应用程序主权 音量, 和
- A全局系统音量级别,也就是仅有的受其本身影响。
- 该应用程序的结果最大音量增益(从扬声器中发出的声音)将受到系统音量目前设置为。
- 增加系统音量将相应增加有效体积增益应用程序通过你的输出产生,但是不是它自己的音量。
一个例子
flat-volumes = yes
- 应用程序“推高”系统音量:例如系统音量为 60%;应用程序音量在 60% 以下自由移动,但超过当前系统音量时会“推高”系统音量
- 应用程序可能会将音量设置为最大(例如,我遇到的 kodi)。如果是这样,系统音量设置为最大音量,而其他应用程序的音量则保持不变。到目前为止,此行为保持有效音量增益,但当将音量设置为最大的应用程序退出时,所有音量都保持不变,使系统音量保持最大,而应用程序音量现在限制在其相对位置。
flat-volumes = no
- 申请量确实不是完全不会影响系统音量。
- 应用程序可能会将音量设置为最大(例如,我遇到的 kodi)。使用扁平体积已禁用,确实如此不是影响系统音量,但只影响其自身音量,其他所有应用程序的音量均保持原样。