Устройство набора для программы в PulseAudio?

В компьютере у меня есть 2 звуковых устройства.

Когда я запускаю некоторую программу (скажем, Skype), я могу (использующий "pavucontrol"-> "Регулятор громкости PulseAudio") установка так, чтобы это приложение использовало данное устройство для воспроизведения или записи.

Но - в Playback/Recording приложение вкладок видимо, только если это в настоящее время делает что-то (воспроизведение или записывает).

Как я могу установить устройство на приложение, но прежде чем приложение начинает записывать или играть звуки?

10
задан 29.08.2010, 17:30

2 ответа

Я не знаю, существует ли установка или конфигурационный файл для этого где-нибудь, но это может быть сделано с переменными среды. Я основывал свой ответ на этой записи в 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>
7
ответ дан 07.12.2019, 12:57

Необходимо ЭКСПОРТИРОВАТЬ и присвоить переменные, как это:

#!/bin/sh 
export PULSE_SINK="sink_name" 
export PULSE_SOURCE="source_name" 
command_to_run_skype
2
ответ дан 07.12.2019, 12:57

Теги

Похожие вопросы