Как надежно переключить устройство вывода pulseaudio из командной строки?

Если вы используете Pacemaker, то вам следует отключить DRBD в systemd, что позволит Pacemaker иметь полный контроль над запуском/остановкой DRBD.

# systemctl disable drbd

DRBD должен загружать свои транспортные модули при установлении соединений, аdrbdadm up <res>должен загружать модуль ядра DRBD, если он еще не загружен.

4
23.05.2019, 22:40
1 ответ

Из этой записи в блоге:

PulseAudio itself comes with two basic command line tools, called pacmd and pactl. Former offers a set-default-sink command, but that doesn't do what you expect from it. It turns out that, at least on my system, PulseAudio daemon keeps persistent settings for each application that ever connected to it. This means that the default sink only gets used for applications that the daemon hasn't seen yet.

Другими словами, этот блогер столкнулся с той же проблемой, что и вы:

  • переключение приемника по умолчанию влияет только на программы, которые ранее не использовались
  • перемещение существующего входа влияет только на программы, фактически активные со звуковой картой
  • вам понадобится инструмент, чтобы просмотреть постоянные настройки и перенаправить их на новую карту.

И вот этот блоггер написал paswitch,инструмент командной строки, чтобы сделать именно это. Исходный код в формате Git можно найти здесь.

Для установки:

  • Убедитесь, что у вас установлен пакет библиотеки разработки Pulseaudio(libpulse-devили аналогичный ). Вам также понадобится компилятор gccи утилита make.
  • Запустите git clone https://www.tablix.org/~avian/git/paswitch.git, чтобы загрузить исходный код.
  • cd paswitch, чтобы войти в каталог, созданный командой git clone, затем запустите make.
  • Если все выполнено без ошибок, теперь в каталоге должен быть двоичный файл paswitch. Скопируйте его в каталог /usr/local/bin/.
  • Прочтите файл READMEв каталоге для примера того, как его использовать.

Другой вариант — указать демону PulseAudio не сохранять настройки приемника для приложений, добавив параметр restore_device=falseв строку module-stream-restoreв/etc/pulse/default.pa:

load-module module-stream-restore restore_device=false

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

Но ваш пробег может варьироваться в зависимости от среды рабочего стола, которую вы используете :на моем Debian 9, отключение сохранения вызвало другое раздражающее поведение с KDE, и в итоге я вернулся к поведению по умолчанию. Если я правильно помню, это привело к тому, что Системные настройки KDE -> Мультимедиа -> Аудио и видео -> Список настроек устройства получали новую копию моих аудиоустройств при каждом входе в систему.

3
27.01.2020, 20:57

Теги

Похожие вопросы