В компьютере у меня есть 2 звуковых устройства.
Когда я запускаю некоторую программу (скажем, Skype), я могу (использующий "pavucontrol"-> "Регулятор громкости PulseAudio") установка так, чтобы это приложение использовало данное устройство для воспроизведения или записи.
Но - в Playback/Recording приложение вкладок видимо, только если это в настоящее время делает что-то (воспроизведение или записывает).
Как я могу установить устройство на приложение, но прежде чем приложение начинает записывать или играть звуки?
Я не знаю, существует ли установка или конфигурационный файл для этого где-нибудь, но это может быть сделано с переменными среды. Я основывал свой ответ на этой записи в PulseAudio FAQ об установке источника записи. Я попробовал это выводом (приемник в PulseAudio), но он должен работать и на вход и на ouput.
Первый шаг должен получить внутреннее название источника и приемника, который Вы хотите использовать. Чтобы сделать это, необходимо использовать pactl list
команда. Та команда возвратит груду данных, но следующее перечислит просто исходные имена:
LANG=C pactl list | grep -A2 'Source #' | grep 'Name: ' | cut -d" " -f2
Тот список будет, вероятно, включать названия и регулярных источников и источников монитора PulseAudio (которые в моей системе имеют "монитор" на имя). Вы захотите использовать регулярное исходное название устройства, для которого Вы хотите быть нацеленными.
Можно сделать то же самое для получения имен приемника:
LANG=C pactl list | grep -A2 'Sink #' | grep 'Name: ' | cut -d" " -f2
После того как у Вас есть имена, можно выполнить что-то как следование из терминала:
PULSE_SINK=<sink_name> PULSE_SOURCE=<source_name> <command_to_run_skype>
Конечно, если Вы захотите выполнить это из меню, то необходимо будет, вероятно, создать сценарий оболочки и использование это вместо команды по умолчанию. Что-то вроде этого должно работать:
#!/bin/sh
set PULSE_SINK <sink_name>
set PULSE_SOURCE <source_name>
<command_to_run_skype>