![在耳机和笔记本电脑扬声器之间切换时 ALSA PulseAudio 声音输出](https://linux22.com/image/1450685/%E5%9C%A8%E8%80%B3%E6%9C%BA%E5%92%8C%E7%AC%94%E8%AE%B0%E6%9C%AC%E7%94%B5%E8%84%91%E6%89%AC%E5%A3%B0%E5%99%A8%E4%B9%8B%E9%97%B4%E5%88%87%E6%8D%A2%E6%97%B6%20ALSA%20PulseAudio%20%E5%A3%B0%E9%9F%B3%E8%BE%93%E5%87%BA.png)
自从我在 Gentoo 系统上安装了 PulseAudio 后,拔下耳机插孔时笔记本电脑的扬声器就没有音频输出。
我认为问题在于 ALSA 和 PulseAudio 如何管理音频控制。插入耳机时一切都很正常,英特尔 HDA PCH 的 alsa 控件配置正确,因此“主”和“耳机”音量条配置正确(我可以通过查看具有 root 权限的 alsamixer 来判断这一点)。当我拔下耳机插孔时,音量设置会自动以看似正确的方式更改。也就是说,“耳机”条静音并设置为 0,而“扬声器”条取消静音并调到最大(而插入耳机插孔时会静音)。“主”始终保持未静音状态并具有所需的音量级别。我实际上可以通过手动取消静音并使用 alsamixer 调高耳机输出来使扬声器输出工作。但每次插入/拔下耳机时我都必须执行此操作。那么有什么方法可以解决这个问题吗?也许以某种方式在 ALSA 系统中将耳机输出与扬声器输出分离?
我的笔记本电脑是 2011 年的 HP Pavilion G6。
谢谢。
答案1
编辑文件 /usr/share/pulseaudio/alsa-mixer/paths/analog-output-speaker.conf 并找到以下部分:
[Element Headphone]
并评论以下行
switch = off
volume = off
最终结果将是
[Element Headphone]
#switch = off
#volume = off
就我的情况而言,问题是由于“耳机”频道被静音而引起的,但出于某种原因,笔记本电脑的扬声器无需静音即可工作。
经过我的改变,拔下耳机时耳机不会静音,也不会将音量设置为零。
要“调试”您的机箱中静音的通道,您可以使用 alsamixer,在 alsamixer 中,您可以按“C”选择您的音频卡(默认设置是设置 pulseaudio 主通道的音量)。插上和拔下耳机,检查有什么变化。