| Пред. | Urban Monkey | След. |
|---|
Смена звуковой карты в JACK на лету
Звуковая система JACK позволяет как угодно маршруизировать звук, без чего ведение прямых эфиров невозможно. Я использую JACK постоянно, поэтому часто сталкивался с проблемой: при использовании внешней звуковой карты, если её отключить, JACK зависает, от этого падает PulseAudio и виснут использующие её программы (mplayer, Skype). #
Чтобы этого не происходило нужно перед отключением карты выключить поддержку JACK в PulseAudio, перезапустить JACK, затем загрузить модули обратно. Встроенных средств для этого нет и делать это руками проблематично, поэтому я написал пару скриптов, которые всё автоматизируют: #
- pactl-unload-by-name — выгружает модули PulseAudio по имени (штатными средствами можно только по идентификатору, который достать сложно).
- jack_set_card — обновляет конфигурацию JACK и перезапускает его, заботясь в процессе о PulseAudio.
Теперь перед отключением USB карты достаточно выполнить команду: #
$ jack_set_card Intel
После подключения обратно: #
$ jack_set_card USB
TODO #
- Привязать всё это к событиям udev, чтобы всё происходило само.
- Отучить PulseAudio падать при пропадании jackd, тогда вся эта возня будет ненужна.
Критику, дополнения и опровержения можно отправлять через форму обратной связи.