防止应用程序在 Linux 上控制主音量

防止应用程序在 Linux 上控制主音量

每当我更改 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

  1. /etc/pulse/daemon.conf
  2. ~/.pulse/daemon.conf
  3. ~/.config/pulse/daemon.conf

分离主控制(这通常是系统范围的硬件音量控制映射到的内容)并让应用程序控制自己的音量,而两者之间不会互相影响,以下方法对我有用:

  • 开始flat-volumes=no2.
  • 确保flat-volumes1. 或3.
  • 重新开始脉冲音频
    • pulseaudio -k
    • pulseaudio --start

结果

音量为滑块控件的值,
音量增益是震动邻居的有效声压

  • 结果是
    1. 拥有自己的应用程序主权 音量, 和
    2. A全局系统音量级别,也就是仅有的受其本身影响。
  • 该应用程序的结果最大音量增益(从扬声器中发出的声音)将受到系统音量目前设置为。
  • 增加系统音量将相应增加有效体积增益应用程序通过你的输出产生,但是不是它自己的音量

一个例子

flat-volumes = yes
  1. 应用程序“推高”系统音量:例如系统音量为 60%;应用程序音量在 60% 以下自由移动,但超过当前系统音量时会“推高”系统音量
  2. 应用程序可能会将音量设置为最大(例如,我遇到的 kodi)。如果是这样,系统音量设置为最大音量,而其他应用程序的音量则保持不变。到目前为止,此行为保持有效音量增益,但当将音量设置为最大的应用程序退出时,所有音量都保持不变,使系统音量保持最大,而应用程序音量现在限制在其相对位置。
flat-volumes = no
  1. 申请量确实不是完全不会影响系统音量。
  2. 应用程序可能会将音量设置为最大(例如,我遇到的 kodi)。使用扁平体积已禁用,确实如此不是影响系统音量,但只影响其自身音量,其他所有应用程序的音量均保持原样。

相关内容