Pulseaudio loopback разгрузить аудио устройства вывода
Я пытаюсь выяснить, как выгрузить импульсно-звуковые выходы обратной связи. Я использую 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 избавляет от записи, но я не могу найти команду для выходов.
1 ответ
Подходящий способ выгрузки модулей
Выгрузка модуля, загруженного в Pulse Audio, производится по порядковому номеру модуля, который указывается при загрузке:
pactl load-module module-null-sink sink_name=test
24
В приведенном выше примере сервер Pulseaudio загрузил модуль с индексом id 24
, Этот модуль может быть выгружен с помощью следующей команды:
pactl unload-module 24
Ваш скрипт должен будет проанализировать вывод pactl
,
В случае, если мы не знаем номер модуля, мы можем выполнить следующую команду, которая отобразит номер и имя модуля:
pactl list short modules
Более новые версии также позволяют выгружать по имени:
pactl unload-module <name>
Быстрый и грязный метод
Если pulseaudio настроен как демон, вызывающий автоматически (который должен быть задан по умолчанию), мы можем быстро выгрузить все модули, загруженные после входа в систему, со сбросом сервера PulseAudio для загрузки модулей по умолчанию, определенных в нашем default.pa
запустив:
pulseaudio -k
Это эффективно выгружает все модули из вашего скрипта и загружает приемник по умолчанию для вывода.