如何在启动时自动将 PulseAudio 默认接收器设置为远程服务器 - Ubuntu 9.04

如何在启动时自动将 PulseAudio 默认接收器设置为远程服务器 - Ubuntu 9.04

我使用 Pulseaudio 设备选择器将默认接收器(在笔记本电脑上)设置为远程服务器。这很有效。当我重新启动笔记本电脑时,默认接收器恢复为“默认”(笔记本电脑声卡)。有没有办法让笔记本电脑在重新启动后继续使用远程服务器?是否有命令可以在启动时在脚本中运行以将默认接收器更改回远程服务器?

我在这台机器上运行着 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 上不起作用。系统日志显示:

11 月 13 日 14:45:33 ubuntu-JMRT pulseaudio[3473]: module-tunnel.c: 流已终止。

因此,我假设这个版本的 pulse 中有一个错误。虽然它可以与 一起使用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

系统日志:

11 月 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

但以上方法均无效。

答案1

https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/DefaultDevice/- PulseAudio 中的默认设置与回退设置不同。实际上,无法在 PulseAudio 本身中设置“默认”设备,如链接中所述。

正确的做法是通过 module-tunnel-sink 定义远程接收器,正如您尝试做的那样。您说在那个版本的 PulseAudio 上不可能实现,那么我只能建议您重新检查语法或以某种方式升级。可以像PULSE_SERVERGilles 的回答中那样对登录 shell 进行设置。下面我明确地写了我的解决方案(使用最新的 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 的问题)。

答案2

在大多数情况下,登录时设置环境变量的正确位置是~/.profile

~/.bashrc是 bash shell 的配置文件,由 bash 的交互式实例在启动时读取。这不是设置环境变量的正确位置,因为正如您所观察到的,它们只能在从交互式 shell 启动的进程中设置。

~/.profile被大多数登录方法读取。但是,根据您的发行版、显示管理器和会话类型,当您以图形模式登录时可能无法读取它。它在 Ubuntu 10.04 的默认配置中加载,但我不确定 9.04 是否如此。如果没有加载,请尝试~/.gnomerc~/.xsession

也可以看看.bashrc 和 .bash_profile 之间的区别

相关内容