Я пытаюсь выяснить, как выгрузить импульсные выходы loopaudio. Я использую pulseaudio для создания петлевого микса, чтобы захватить микрофон и системный звук для потоковой передачи. Каждый раз, когда я запускаю свой скрипт, который имеет этот код:
pactl load-module module-null-sink sink_name=mix
pactl load-module module-loopback sink=mix
pactl load-module module-loopback sink=mix
avconv ...
pactl unload-module module-loopback
он оставляет два устройства вывода после закрытия. Команда unload-module избавляет от записи, но я не могу найти команду для выходов.
Разгрузка модуля, загруженного в Импульсное Аудио, сделана индексом модуля, который дан на загрузке:
pactl load-module module-null-sink sink_name=test
24
В вышеупомянутом примере сервер Pulseaudio загрузил модуль индексным идентификатором 24
. Этот модуль может быть разгружен со следующей командой:
pactl unload-module 24
Ваш сценарий должен будет проанализировать вывод pactl
.
В случае, если мы не знаем число модуля, мы можем дать следующую команду, которая отобразит число и имя модуля:
pactl list short modules
Более новые версии также позволяют разгружаться по имени:
pactl unload-module <name>
Если pulseaudio настраивается как автомечущий икру демон (который должен быть значением по умолчанию begaviour), мы можем быстро разгрузить все модули, загруженные после входа в систему сбросом сервера PulseAudio для загрузки модулей по умолчанию, определенных в нашем default.pa
путем выполнения:
pulseaudio -k
Это эффективно разгрузит все модули из Вашего сценария и загрузит приемник по умолчанию для вывода.