alsamixer 中的奇怪状态发生了变化

Strange status changed in alsamixer

我的音频系统很简单:后面板有两个扬声器--front left(FL)front right(FR),前面板有耳机。原始状态如下--原始状态:
在此状态下,可以听到 FLFRheadphone.

的声音

我发现一个奇怪的事实,当点击[=20上的M时,alsamixer中的masterfrontsurround变成了MM状态=],我把光标移到LFE,点击M,LFE变成MM,同时master,front ,surround全部变为MM状态!听不到声音!

然后我在 LFE 上第二次点击 M,所有状态更改如下:

从原始状态继续,拔掉后面板的线,耳机没有声音! alsamixer gui 中的状态如下:
现在重新插上后面板的线,alsamixer gui中的状态变成:

请详细说明。

要查看发生了什么:

  • 在一个终端中 window, 运行 alsactl monitor.
  • 在另一个终端window, 运行 alsamixer.
  • 作为你mute/unmute在alsamixer中的东西,你可以在监视器中看到控制命令window。当您将 LFE 静音时,您应该会看到多个切换命令。

发生这种情况的原因是 alsamixer 使用的 pulseaudio 配置文件。

  • 配置文件位于 /usr/share/pulseaudio/alsa-mixer/profile-sets/*.conf
  • 路径位于 /usr/share/pulseaudio/alsa-mixer/paths/*.conf

那么哪些正在使用呢?您可以使用 pacmd info | grep "active" 进行检查,这可能会产生如下内容:

    active port: <analog-output-speaker>
    active port: <analog-input-headphone-mic>
    active profile: <output:analog-stereo+input:analog-stereo>

好的,所以输出映射是analog-stereo。我可以在 /usr/share/pulseaudio/alsa-mixer/profile-sets/default.conf 中找到它。它包含以下内容:

[Mapping analog-stereo]
device-strings = front:%f hw:%f
channel-map = left,right
paths-output = analog-output analog-output-lineout analog-output-speaker analog-output-headphones analog-output-headphones-2
paths-input = analog-input-front-mic analog-input-rear-mic analog-input-internal-mic analog-input-dock-mic analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line analog-input-headphone-mic analog-input-headset-mic
priority = 10

真正的控制权在/usr/share/pulseaudio/alsa-mixer/paths/analog-output-speaker.conf之下。您可以阅读 /usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf.common 了解详细信息,其中我们看到两个重要部分:

; When a device shall be muted/unmuted *all* elements listed in a path
; file with "switch = mute" will be toggled.

(对此有一点警告。似乎取消静音不会切换路径中的其他元素)

; [Element ...]                          # For each element that we shall control
...
; switch = ignore | mute | off | on | select # What to do with this switch: ignore it, make it follow mute status,
;                                            # always set it to off, always to on, or make it selectable as port.
;                                            # If set to 'select' you need to define an Option section for on
;                                            # and off
...

所以现在,如果我们想要调整一个元素,使其始终打开、始终关闭,或者只是忽略静音,我们将在感兴趣的元素中设置相应的 switch= 值。

如果您想在激活该路径(即插入耳机时)时调整耳机的行为,请更改 paths/analog-output-headphones.conf

中的元素值