我有一个设置,其中 AUX 扬声器和 USB 耳机连接到我的 Ubuntu 23.10 机器。我可以将默认音频输出设备设置为耳机,Spotify 等某些应用程序似乎尊重这一选择。但是,Chrome 或 Rhythmbox 等其他应用程序仍继续使用扬声器。
我已尝试pavucontrol
按照建议进行安装这个问题并从那里切换应用程序输出设备。但是,某些操作(例如将视频切换到全屏)会不断将音频输出设备从耳机改回扬声器。这真的很令人沮丧。
我尝试过的事情:
- 使用 PulseAudio 配置控制音频
pavucontrol
并重置 (rm -r ~/.config/pulse
) (问题 1,问题2) - 禁用某些 PulseAudio 模块的各种变体(问题 1,问题2,这篇 Reddit 帖子)
- 设置默认的 PulseAudio 接收器(我仅通过 执行此操作
pavucontrol
,在“配置”选项卡中选择耳机作为后备,也可以通过 Gnome 设置进行选择)。运行pactl get-default-sink
也可以正确显示耳机:alsa_output.usb-Kingston_HyperX_7.1_Audio_00000000-00.analog-stereo
- 重新启动 PulseAudio:
pulseaudio -k && pulseaudio --start
- 重新安装 PulseAudio:
sudo apt install --reinstall pulseaudio; rm -r ~/.config/pulse; sudo reboot
但是,这些似乎都不起作用。我可以从 Gnome 设置或 pavucontrol 中选择耳机,例如 Spotify 可以工作,但是当我在 Chrome 中打开新视频时,它只会在扬声器上播放。将其更改为耳机的唯一方法是通过 pavucontrol,或者转到 Gnome 音频设置,选择扬声器(现在所有内容都通过扬声器播放),然后重新选择耳机(现在所有内容都通过耳机播放)。同样,将视频切换到全屏会将 Chrome 输出恢复到扬声器(但 Spotify 不会)。
笔记
- 我的系统比较旧,已经更新过很多次了。我记得安装的第一个 Ubuntu 版本是 17.04。
- USB 耳机也相当旧了(HyperX Cloud II),它们似乎工作正常(例如在 Windows 上),但 DAC 此时已经相当破旧了。可能是硬件问题?
有没有其他人遇到过这个问题,并能指点如何解决?或者对我应该查看哪些日志/采取哪些调试步骤有什么建议?任何帮助都非常感谢。
编辑
添加一些可能有帮助的系统信息。
$ pactl list short cards
pactl list short cards
44 alsa_card.pci-0000_00_1b.0 alsa # Built-in audio
45 alsa_card.pci-0000_05_00.1 alsa # HDMI audio (disabled)
46 alsa_card.usb-0c76_USB_PnP_Audio_Device-00 alsa # USB microphone
47 alsa_card.usb-Kingston_HyperX_7.1_Audio_00000000-00 alsa # USB headphones
48 alsa_card.usb-046d_C922_Pro_Stream_Webcam_60A9E5DF-02 alsa # Webcam microphone (disabled)
$ pactl list short sinks
49 alsa_output.pci-0000_00_1b.0.analog-stereo PipeWire s32le 2ch 48000Hz IDLE # Speakers
52 alsa_output.usb-Kingston_HyperX_7.1_Audio_00000000-00.analog-stereo PipeWire s16le 2ch 48000Hz RUNNING # Headphones
$ pactl info
Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 247
Tile Size: 65472
User Name: myname
Host Name: myname-pc-ubuntu
Server Name: PulseAudio (on PipeWire 0.3.79)
Server Version: 15.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.usb-Kingston_HyperX_7.1_Audio_00000000-00.analog-stereo
Default Source: alsa_input.usb-0c76_USB_PnP_Audio_Device-00.mono-fallback
Cookie: 5042:06db
答案1
也许我在启动应用程序中使用的脚本能够使用模拟线路输出有帮助:
#!/usr/bin/env bash
alsa force-reload
systemctl --user 启动 pipewire-pulse.service