파이 게임 오디오는 Pi에서 systemd를 통해 실행될 때 터지는 소리/깨지는 소리로 가득 차 있습니다.

파이 게임 오디오는 Pi에서 systemd를 통해 실행될 때 터지는 소리/깨지는 소리로 가득 차 있습니다.

systemd를 사용하여 부팅 시 자동으로 시작되도록 오디오를 재생하는 Python 프로세스를 설정하려고 하는데, 이렇게 하면 오디오가 펑펑 울립니다. 명령줄에서 직접 실행해도 문제가 없습니다. 아래 파일에서 볼 수 있듯이 .service저는 제가 생각할 수 있는 모든 방법으로 프로세스 우선순위를 극대화하려고 노력합니다. 무엇이 잘못되고 있는지 아는 사람이 있나요?

스크립트는 여기에 있습니다:https://github.com/UndarkAido/superhet( music디렉토리를 채우고 secrets.py직접 실행해야 합니다. 디렉터리 genBreaks.py를 채웁니다 breaks.)

슈퍼 서비스:

[Unit]
 Description=Superhet radio
 After=multi-user.target sound.target

 [Service]
 Type=simple
 CPUSchedulingPolicy=fifo
 CPUSchedulingPriority=99
 IOSchedulingClass=realtime
 IOSchedulingPriority=0
 Nice=-20
 User=aidan
 Group=aidan
 WorkingDirectory=/home/-user-/Source/superhet
 ExecStart=/home/-user-/Source/superhet/venv/bin/python main.py

 [Install]
 WantedBy=multi-user.target

시스템 메시지:

  `.::///+:/-.        --///+//-:``    -user-@superhet
 `+oooooooooooo:   `+oooooooooooo:    --------------
  /oooo++//ooooo:  ooooo+//+ooooo.    OS: Raspbian GNU/Linux 10 (buster) armv7l
  `+ooooooo:-:oo-  +o+::/ooooooo:     Host: Raspberry Pi 4 Model B Rev 1.1
   `:oooooooo+``    `.oooooooo+-      Kernel: 5.10.63-v7l+
     `:++ooo/.        :+ooo+/.`       Uptime: 20 mins
        ...`  `.----.` ``..           Packages: 1485 (dpkg)
     .::::-``:::::::::.`-:::-`        Shell: bash 5.0.3
    -:::-`   .:::::::-`  `-:::-       Terminal: /dev/pts/0
   `::.  `.--.`  `` `.---.``.::`      CPU: BCM2711 (4) @ 1.500GHz
       .::::::::`  -::::::::` `       Memory: 89MiB / 1872MiB
 .::` .:::::::::- `::::::::::``::.
-:::` ::::::::::.  ::::::::::.`:::-
::::  -::::::::.   `-::::::::  ::::
-::-   .-:::-.``....``.-::-.   -::-
 .. ``       .::::::::.     `..`..
   -:::-`   -::::::::::`  .:::::`
   :::::::` -::::::::::` :::::::.
   .:::::::  -::::::::. ::::::::
    `-:::::`   ..--.`   ::::::.
      `...`  `...--..`  `...`
            .::::::::::
             `.-::::-`

편집: 주기적으로 systemctl status superhet.service표시됨superhet python[1040]: ALSA lib pcm.c:8424:(snd_pcm_recover) underrun occurred

답변1

Environment=XDG_RUNTIME_DIR=/run/user/1000PyGame이 PulseAudio에 연결할 수 있도록 서비스 파일에 추가

https://stackoverflow.com/q/49059610/1526048

관련 정보