基于本指南,我在 Raspberry Pi 上设置了 pulseaudio 以系统模式运行。我的 systemd 服务文件如下所示:
[Unit]
Description=PulseAudio Daemon
After=sound.target
Requires=sound.target
[Install]
WantedBy=default.target
[Service]
Type=notify
ExecStart=/usr/bin/pulseaudio --disallow-exit --no-cpu-limit --daemonize=no --system --realtime --disallow-module-loading --log-target=journal -vvvv
但是,我没有听到任何声音 - 根据日志,当 pulseaudio 启动时,udev-detect 报告“找到 0 张卡。”,而我只得到空接收器。运行systemctl --system restart pulseaudio.service
修复了这个问题,我的音频设备被正确检测到了。
有什么办法可以告诉 pulseaudio 等到检测到设备吗?
答案1
告诉 PulseAudio 不会很有用。它已经可以很好地自行检测热插拔设备;但是,由于--disallow-module-loading
它不再能够使用设备,因为在检测到设备后禁止加载module-alsa-card
。(可以说 module-udev-detect 应该不受此限制……)
你可以告诉systemd延迟启动 pulseaudio.service 直到特定设备准备就绪,通过.device
在此设备中列出相应的设备名称After=
,例如:
[Unit]
After=sys-devices-pci0000:00-0000:00:1b.0-sound-card0.device