Как автоматически установить приемник по умолчанию PulseAudio на удаленный сервер при загрузке - Ubuntu 9.04

16103
Dave M

Я использую Pulseaudio Device Chooser, чтобы установить приемник по умолчанию (на ноутбуке) для удаленного сервера. Это отлично работает. Когда я перезагружаю свой ноутбук, мойка по умолчанию возвращается к «default» (звуковая карта ноутбука). Есть ли способ заставить ноутбук продолжать использовать удаленный сервер после перезагрузки? Есть ли команда, которую я могу запустить в скрипте при запуске, чтобы изменить приемник по умолчанию обратно на удаленный сервер?

Я использую Ubuntu 9.04 на этой машине.

Похоже, что существует проблема при создании туннеля с версией импульса, используемой в дистрибутиве ubuntu 9.04. Если я делаю следующее на Ubuntu 10.04, это работает:

pactl load-module module-tunnel-sink "server=192.168.1.64 sink=alsa_output.pci_8086_293e_sound_card_0_alsa_playback_0 sink_name=sink-DGTM"  pacmd set-default-sink sink-DGTM 

К сожалению, это не работает на Ubuntu 9.04. Системный журнал показывает:

13 ноября 14:45:33 ubuntu-JMRT pulseaudio [3473]: module-tunnel.c: Поток умер.

Итак, я собираюсь предположить, что в этой версии импульса есть ошибка. Хотя это работает с padevchooser, я не могу заставить его работать из командной строки. Я также попытался добавить следующее /etc/pulse/default.paи получил те же результаты:

load-module module-tunnel-sink server=192.168.1.64 sink=alsa_output.pci_8086_293e_sound_card_0_alsa_playback_0 sink_name=sink-DGTM set-default-sink sink-DGTM 

системный журнал:

13 ноября 14:45:33 ubuntu-JMRT pulseaudio [3473]: module-tunnel.c: Поток умер.

Итак, я снова пытаюсь выяснить, куда экспортировать, PULSE_SERVERчтобы приложения, запущенные из gnome, видели его при перезагрузке.

Я попытался добавить:

export PULSE_SERVER=tcp:192.168.1.64:4713 

чтобы: ~/.bashrc

Это работает, если я запускаю приложения из консоли, но не работает, если я запускаю приложения из gnome.

Я также попытался добавить этот экспорт в:

~/.pulse/client.conf /etc/pulse/client.conf /usr/bin/start-pulseaudio-x11 

но ничего из вышеперечисленного не сработало.

4
При загрузке или при входе в систему? Ignacio Vazquez-Abrams 14 лет назад 0
Я думаю, что Ubuntu загружает пульс при входе в систему? Dave M 14 лет назад 0

2 ответа на вопрос

4
Daniel Andersson

http://pulseaudio.org/wiki/DefaultDevice - по умолчанию это не то же самое, что и запасной вариант в PulseAudio. На самом деле нельзя установить устройство по умолчанию, как описано в ссылке внутри самого PulseAudio.

«Правильный» способ сделать это - определить удаленный приемник через модуль-туннель-приемник, как вы пытаетесь это сделать. Вы говорите, что это невозможно в этой версии PulseAudio, и тогда я могу только рекомендовать вам перепроверить синтаксис или обновить каким-либо образом. Настройка PULSE_SERVERможет быть выполнена для логинов как в ответе Жиля. Ниже я подробно пишу о своем решении (с последней версией PulseAudio).

Мои точные строки из /etc/pulse/default.pa:

.ifexists module-tunnel-sink.so .nofail load-module module-tunnel-sink server=192.168.0.1 sink=alsa_output.pci-0000_00_1b.0.analog-stereo sink_name=d-f05 .fail .endif 

... так же, как вы пытаетесь сделать. Если это работает, то вы можете установить «истинное значение по умолчанию», например gnome-volume-control, где ваш псевдоним приемник должен отображаться в качестве доступного устройства вывода.

Этот способ позволяет переключать вывод на лету для всех приложений.

Определение удаленного приемника можно также сделать лучше с помощью Avahi, но я пока не смог заставить его работать здесь (не проблема PulseAudio).

1
Gilles

Правильное место для установки переменных среды при входе - в большинстве случаев ~/.profile.

~/.bashrcэто файл конфигурации оболочки bash, читаемый при запуске интерактивными экземплярами bash. Неправильно устанавливать переменные среды, поскольку, как вы заметили, они будут устанавливаться только в процессах, запускаемых из интерактивной оболочки.

~/.profileчитается большинством методов входа в систему. Однако, в зависимости от вашего дистрибутива, диспетчера отображения и типа сеанса, он может не читаться при входе в графический режим. Он загружается в конфигурации по умолчанию на Ubuntu 10.04, но я не уверен насчет 9.04. Если он не загружен, попробуйте ~/.gnomercили ~/.xsession.

Смотрите также Разница между .bashrc и .bash_profile .

Добавление "export PULSE_SERVER = tcp: 192.168.1.64: 4713" (где 192.168.1.64 - это IP-адрес или DNS-имя удаленного импульсного аудиосервера) в ~ / .profile работает. Спасибо. Dave M 14 лет назад 0

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