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

Это эффективно выгружает все модули из вашего скрипта и загружает приемник по умолчанию для вывода.

Другие вопросы по тегам