作为服务运行时默认声音设备不同

作为服务运行时默认声音设备不同

我用挤压式在我的笔记本电脑上播放音频流。笔记本电脑内置 Intel 声卡,但我使用 HDMI 连接到显示器以在显示器扬声器上播放声音。这很有效,我可以使用键盘上的媒体按钮。
但是,这仅在我将 squeezelite 作为后台作业执行时才有效。当我尝试将 squeezelite 作为服务运行时,会出现问题。然后,声音在笔记本电脑扬声器上播放。但是,我可以指定我希望 squeezelite 使用的声音设备。一些选项是:“default”、“front”和“hdmi”。 “default”和“front”转到笔记本电脑扬声器,“hdmi”转到显示器扬声器但绕过媒体键。手动运行时,媒体键有效,“default”和“hdmi”都转到显示器扬声器。

我的问题是:我如何将 squeezelite 作为服务运行,将输出发送到 HDMI 扬声器,并使媒体键正常工作?
可能是因为我以 root 身份运行 squeezelite 作为服务,“default”具有不同的含义并且绕过了媒体键?我尝试以我的用户身份运行start-stop-daemon,但没有成功。

这是我的声音设备列表:

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

有任何想法吗?

答案1

我们没有使用过 squeezelite 模拟器,但它似乎直接使用了 ALSA。

为了使用媒体键控制 ALSA,我们可以定义键盘快捷键对于运行 sqeezelite 的用户(在您的情况下root):

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

桌面用户键盘设置或其他每用户音频设置(例如默认音频设备)仅在我们从用户会话运行 squeezlite 后才有效(例如登录时)。

相关内容