我尝试了 askubuntu 和其他来源的许多不同建议,但目前我真的陷入困境。
我正在尝试使用以下设置配置无头服务器:
- 线路输出至扬声器。
- 无论服务器上播放什么内容,都应将线路“转发”到扬声器。
- 输出到 snapcast 的 MPD 实例,又输出到“线路输出”扬声器。
我逐渐明白,我需要结合使用 Pulseaudio 和 ALSA 才能实现此功能,因为 ALSA 实际上并不支持同一声卡上的多个音频源。
由于某种原因,当我安装 pulseaudio 时,它会以系统模式启动,但我不知道为什么。Htop 显示以下进程(全部以 root 用户身份运行):
s6-supervise pulseaudio
pulseaudio --system -vvv --disallow-exit --exit-idle-time=-1 --disable-shm
pulseaudio --system -vvv --disallow-exit --exit-idle-time=-1 --disable-shm
pulseaudio --system -vvv --disallow-exit --exit-idle-time=-1 --disable-shm
但据我所知,没有 systemd 服务可以启动此功能:
$ sudo systemctl status pulseaudio.service
Unit pulseaudio.service could not be found.
$ sudo systemctl status pulseaudio.socket
Unit pulseaudio.socket could not be found.
我正在运行 Ubuntu 服务器:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.1 LTS
Release: 20.04
Codename: focal
Alsamixer 显示所有播放源均未静音(绿色 00)。但我无法连接到 Pulseaudio:
$ pulsemixer
Failed to connect to pulseaudio: Connection refused
尽管所有用户都有权访问脉冲访问:
$ grep pulse-acc /etc/group
pulse-access:x:125:ruben,_snapclient,openhab,snapserver,pulse,root
并且我在 /etc/pulse/{default|system}.pa 中配置了以下内容:
load-module module-native-protocol-unix auth-group-enable=true auth-group=pulse-access socket=/tmp/pulse-socket
在 /etc/pulse/client.conf 中:
default-server = unix:/tmp/pulse-socket
也从未创建过/tmp/pulse-socket
。我的问题如下:
我该如何解决这一混乱,禁用系统模式并在无头服务器上结合 snapcast 使用每个用户的 Pulseaudio?
如果缺少任何信息,请告诉我。
答案1
事实证明,这与在系统模式下运行的 Pulseaudio 的“正常”版本无关,而是我的 Homeassistant Supervised 实例接管了主机系统的音频,请参阅https://github.com/home-assistant/plugin-audio/issues/12了解详情。
所以现在我将恢复到 Homeassistant 核心,希望问题能够得到解决。