systemd 与命令行上的音频设备忙于服务

systemd 与命令行上的音频设备忙于服务

对我来说一个特定的问题是在树莓派上使用 snapclient。

我让 Snapclient 与语音助手一起运行。如果我使用命令行启动 Snapclient

sudo snapclient -h 192.168.x.xxx -s 3 --player=alsa &

然后我的语音助手可以输出到相同的音频输出,并且我可以听到两个流。

如果我使用 systemd 启动

sudo systemctl start snapclient.service

然后语音助手音频因设备/资源繁忙而被阻止。

使用 htop(很可能有更好的方法来做到这一点)我可以在通过 systemd 启动时看到用户和完整的参数列表,并且当我从命令行运行时我准确地复制了它但无济于事。

有人能告诉我我需要学习什么才能让它从 systemd 运行,或者通过 rc.local 来运行是否更好?欢迎提供任何有关如何学习的建议。

我确信这可能是权限问题,但我不知道如何寻找下一步。

答案1

我在使用 alsa 从 ubuntu/orangepi 上的服务播放音频时遇到了类似的问题“无法打开音频 hw:0:设备或资源繁忙”。

我可以通过在单元配置中添加“Requires=dbus.service”和“Environment=DISPLAY=:0”来解决该问题。

这是我的工作单元配置文件:

[Unit]
Description=Buttons sound app
Requires=dbus.service

[Service]
ExecStart=/home/orangepi/runSoundServer.sh
User=orangepi
Environment=DISPLAY=:0

[Install]
WantedBy=multi-user.target

相关内容