Запретить приложениям управлять мастер громкостью в Linux

10

Всякий раз, когда я меняю громкость в VLC, Rhythmbox или видео на YouTube, он меняет общую громкость, то есть громкость системы. Как я могу предотвратить это?

Я использую Debian 7.0.0 (wheezy) с xfce4, он использует PulseAudio, с которым я не знаком. Вот скриншот приложения "Mixer", которое поставляется с xfce:

введите описание изображения здесь

Да, я попытался снять флажок "цепочка" там. Я установил, pavucontrolно, кажется, нет возможности изменить это:

введите описание изображения здесь

Alex
источник

Ответы:

9

Эта статья на вики Gentoo может быть применена здесь: PulseAudio для каждого приложения :

PulseAudio поддерживает регулировку громкости для каждого приложения, но по умолчанию это мало что дает, так как вы можете контролировать эти громкости только из утилиты управления громкостью pulseaudio. Это означает, что в приложении, таком как Audacious, когда устройство вывода установлено на PulseAudio, а регулятор громкости установлен на аппаратное обеспечение, он будет регулировать основной регулятор громкости, а не регулятор громкости для каждого приложения.

Чтобы исправить это поведение, установите следующее в /etc/pulse/daemon.conf

flat-volumes = no

Теперь, когда Audacious идет на регулировку громкости, он регулирует только громкость звука, и поэтому у вас не будет нескольких приложений, сражающихся за основной регулятор громкости.

harrymc
источник
Спасибо, но это не сработало. Изменение громкости из GUI pulseaudio (как показано здесь ) и из самого приложения ( здесь ) изменяет громкость системы. Я перезагрузил компьютер после внесения изменений. Я проверил файл, и изменения действительно были сохранены
Алекс
Debian wheezy, очевидно, использует PulseAudio версии 2.0-6.1. Вы можете попробовать приведенный выше совет по версии 3.0-1, доступной в экспериментальном выпуске.
harrymc
@ Алекс Верно. Я бы поспорил на проблему, связанную с Debian, поскольку приложения с поддержкой PulseAudio и PA работали так, как вы хотите, в течение многих лет.
Майкл Хэмптон
Есть проблема с амой - или это другой вариант? Объемы основного и всех приложений установлены, скажем, на 35%. Я запускаю приложение, которое устанавливает master (и себя) на 100%, но оставляет все остальные на их (теперь относительные) 35%. Я вышел из этого приложения, мастер на 100%, все приложения теперь ограничены до 35% (я на Arch Linux). Все еще ищу решение этой проблемы.
Босси
0

Если я правильно интерпретирую вашу проблему, вот решение, которое я нашел:

Проблема

Когда приложение контролирует громкость (например, устанавливает ее на макс.), Это влияет на уровень громкости системы, оставляя уровни громкости приложений там, где они есть, эффективно «перекрывая» их, требуя перенастройки, например, 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=noв2.
  • убедитесь, что flat-volumesв 1. или нет настроек3.
  • перезапустить pulseaudio :
    • pulseaudio -k
    • pulseaudio --start

Результат

Позволять

уровень громкости - это значение регулятора, а
усиление громкости - эффективное звуковое давление, раскачивающее ваших соседей.

  • Результат будет
    1. приложение , которое имеет свой собственный суверенный уровень громкости , и
    2. глобальный уровень громкости системы , что также только зависит от самой себя.
  • Результирующий максимальный уровень громкости приложения (который исходит от ваших динамиков) будет ограничен тем, какой уровень громкости системы в данный момент установлен.
  • Увеличение уровня громкости системы будет пропорционально увеличивать эффективный прирост громкости, производимый приложением через ваш вывод, но не его собственный уровень громкости .

Пример

flat-volumes = yes
  1. Приложения "увеличивают" громкость системы: например, громкость системы составляет 60%; Объем приложения свободно перемещается ниже 60%, но «увеличивает» объем системы при превышении текущего объема системы
  2. Приложение может установить громкость на максимум (например, коди в моем случае). Если это так, уровень громкости системы устанавливается (на максимум), в то время как уровни других приложений остаются там, где они есть. До этого момента это поведение сохраняло эффективный прирост громкости, но когда приложение, которое устанавливает громкость на максимум, завершает работу, все уровни остаются на своих местах, сохраняя громкость системы на максимальном уровне, а громкость приложений теперь ограничивается их относительным положением.
flat-volumes = no
  1. Объем приложения никак не влияет на объем системы.
  2. Приложение может установить громкость на максимум (например, коди в моем случае). Если плоские тома отключены, они не влияют на системный том, а только на его собственный, оставляя все остальные уровни томов приложений там, где они находятся.
Босси
источник