Dispositivo de som padrão diferente quando executado como serviço

Dispositivo de som padrão diferente quando executado como serviço

eu usosqueezelitepara reproduzir fluxos de áudio no meu laptop. O laptop possui uma placa de som Intel integrada, mas eu uso a conexão HDMI com o monitor para reproduzir o som nos alto-falantes do monitor. Isso funciona bem e posso usar os botões de mídia do teclado.
No entanto, isso só funciona quando executo o squeezelite como um trabalho em segundo plano. As coisas dão errado quando tento executar o squeezelite como um serviço. Em seguida, o som é reproduzido nos alto-falantes do laptop. No entanto, posso especificar qual dispositivo de som desejo que o squeezelite use. Algumas opções são: “default”, “front” e “hdmi”. "padrão" e "frontal" vão para os alto-falantes do laptop e "hdmi" vai para os alto-falantes do monitor, mas ignora as teclas de mídia. Quando executadas manualmente, as teclas de mídia funcionam e tanto "padrão" quanto "HDMI" vão para os alto-falantes do monitor.

Minha dúvida é: como posso rodar o squeezelite como serviço, com a saída enviada para os alto-falantes HDMI e com as teclas de mídia funcionando?
Será que porque estou executando o squeezelite como um serviço (como root), "default" tem um significado diferente e as chaves de mídia são ignoradas? Tentei executar o start-stop-daemoncomo meu usuário, mas não funcionou.

Esta é uma lista dos meus dispositivos de som:

Output devices:
  default                        - Playback/recording through the PulseAudio sound server
  null                           - Discard all samples (playback) or generate zero samples (capture)
  pulse                          - PulseAudio Sound Server
  sysdefault:CARD=Intel          - HDA Intel, ALC272 Analog - Default Audio Device
  front:CARD=Intel,DEV=0         - HDA Intel, ALC272 Analog - Front speakers
  surround40:CARD=Intel,DEV=0    - HDA Intel, ALC272 Analog - 4.0 Surround output to Front and Rear speakers
  surround41:CARD=Intel,DEV=0    - HDA Intel, ALC272 Analog - 4.1 Surround output to Front, Rear and Subwoofer speakers
  surround50:CARD=Intel,DEV=0    - HDA Intel, ALC272 Analog - 5.0 Surround output to Front, Center and Rear speakers
  surround51:CARD=Intel,DEV=0    - HDA Intel, ALC272 Analog - 5.1 Surround output to Front, Center, Rear and Subwoofer speakers
  surround71:CARD=Intel,DEV=0    - HDA Intel, ALC272 Analog - 7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
  dmix:CARD=Intel,DEV=0          - HDA Intel, ALC272 Analog - Direct sample mixing device
  dsnoop:CARD=Intel,DEV=0        - HDA Intel, ALC272 Analog - Direct sample snooping device
  hw:CARD=Intel,DEV=0            - HDA Intel, ALC272 Analog - Direct hardware device without any conversions
  plughw:CARD=Intel,DEV=0        - HDA Intel, ALC272 Analog - Hardware device with all software conversions
  hdmi:CARD=HDMI,DEV=0           - HDA ATI HDMI, HDMI 0 - HDMI Audio Output
  dmix:CARD=HDMI,DEV=3           - HDA ATI HDMI, HDMI 0 - Direct sample mixing device
  dsnoop:CARD=HDMI,DEV=3         - HDA ATI HDMI, HDMI 0 - Direct sample snooping device
  hw:CARD=HDMI,DEV=3             - HDA ATI HDMI, HDMI 0 - Direct hardware device without any conversions
  plughw:CARD=HDMI,DEV=3         - HDA ATI HDMI, HDMI 0 - Hardware device with all software conversions

Alguma ideia?

Responder1

Não temos nenhuma experiência com o emulador squeezelite, mas parece que ele faz uso direto do ALSA.

Para controlar ALSA com chaves de mídia podemos definiratalhos do tecladopara o usuário executando sqeezelite (no seu caso root):

amixer set Master 10%+ ## for Volume UP 10%
amixer set Master 10%- ## for Volume DOWN 10%
amixer set Master toggle ## for Mute

As configurações do teclado do usuário do desktop ou outras configurações de áudio por usuário (por exemplo, dispositivos de áudio padrão) só funcionarão depois de executarmos o squeezlite a partir de uma sessão de usuário (por exemplo,no login).

informação relacionada