나에게 특정한 문제는 라즈베리 파이에서 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
ubuntu/orangepi의 서비스에서 오디오를 재생하기 위해 alsa를 사용하는 비슷한 문제가 있었습니다. "오디오 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