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

2

Eu uso squeezelite para reproduzir fluxos de áudio no meu laptop. O laptop tem uma placa de som embutida da Intel, mas eu uso a conexão HDMI no meu monitor para reproduzir o som nos alto-falantes do meu monitor. Isso funciona bem e eu posso usar os botões de mídia no meu teclado.
No entanto, isso só funciona quando eu 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 quero que o squeezelite use. Algumas opções são: "default", "front" e "hdmi". "padrão" e "frente" 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 os "padrões" e "hdmi" vão para os alto-falantes do monitor.

Minha pergunta é: como posso executar o squeezelite como um serviço, com a saída enviada para os alto-falantes HDMI e com as teclas de mídia funcionando?
Será que, como estou executando o squeezelite como um serviço (como root), "default" tem um significado diferente e as chaves de mídia são ignoradas? Eu tentei executar o start-stop-daemon como meu usuário, mas isso 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 idéia?

    
por Jos 10.07.2014 / 12:31

1 resposta

0

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

Para controlar o ALSA com chaves de mídia, podemos definir atalhos de teclado para o usuário executando o 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 de teclado do usuário da área de trabalho ou outras configurações de áudio por usuário (por exemplo, dispositivos de áudio padrão) só funcionarão depois de executarmos o squeezlite em uma sessão do usuário (por exemplo, no login ).

    
por Takkat 10.07.2014 / 13:56