对我来说一个特定的问题是在树莓派上使用 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