![操作系统对默认音频接收器的困惑 - 脉冲](https://linux22.com/image/923908/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E5%AF%B9%E9%BB%98%E8%AE%A4%E9%9F%B3%E9%A2%91%E6%8E%A5%E6%94%B6%E5%99%A8%E7%9A%84%E5%9B%B0%E6%83%91%20-%20%E8%84%89%E5%86%B2.png)
我在戴尔笔记本电脑上安装了 Unbuntu 18.04,配有 Pulse Audio 和 Gnome 桌面。我的笔记本电脑连接到 USB 3.0 基座(不是 USB-C),并将外置扬声器和 USB 耳机插入该基座。从挂起状态唤醒后,我发现:
- 脉冲音频服务器通过
pactl
表示默认接收器是基座上的扬声器,就像我在暂停之前所拥有的那样。 - 声音的桌面 GUI 显示耳机是默认接收器。
- 当我在 Firefox 浏览器中继续播放来自亚马逊的流媒体音乐时,它会转到基座扬声器。
- 当我在 Slack 桌面客户端播放带有声音的视频时,它会传输到耳机。
- 当我在声音 GUI 中重新选择基座扬声器时,Slack 视频播放就会转到基座扬声器。
因此,每次我从挂起状态恢复时,我都必须进入桌面声音 GUI 并选择底座扬声器。确实快速又简单,但我希望我的电脑为我工作,而不是我为它工作。
那么,您对差异的根源有什么想法吗?我想可能对暂停/恢复配置进行一些调整可能会有所帮助。我还认为可以解决默认接收器上的差异问题。有什么想法吗?
下面是我所指的声音 GUI 的快照:
答案1
我确实发现了我对 Pulse 音频默认接收器的理解存在错误。我忽略了查看 的输出pactl info
。相反,我查看了 的输出pactl list
。在那里,我识别了状态并误以为这是违约,因为跑步。
pactl list|grep -A 3 ^Sink
接收器 #56 状态:已暂停 名称:alsa_output.pci-0000_00_1f.3.analog-stereo 描述:内置音频模拟立体声
接收器 #62 状态:正在运行 名称:alsa_output.usb-DisplayLink_Dell_D3100_USB3.0_Dock_1801300021-02.iec958-stereo 描述:Dell D3100 USB3.0 Dock 数字立体声 (IEC958)
接收器 #63 状态:已暂停 名称:alsa_output.usb-Jabra_Jabra_UC_VOICE_550a_000100A9FCFE-00.analog-stereo 描述:Jabra UC VOICE 550a 模拟立体声
因此,事实证明 Sink #63 实际上是默认设置,这正是 Gnome 设置声音 GUI 所指示的。通过重置默认设置pactl set-default-sink alsa_output.usb-DisplayLink_Dell_D3100_US...
也会更改 GUI 中的指示器。
因此,我认为我剩下的任务是看看我是否可以调整从挂起恢复的过程以设置默认值,以防我连接到底座。可能,我也想让底座连接事件触发默认设置。
答案2
答案3
我遇到了一些问题。通过将默认输出接收器添加到~/.profile
echo "pactl set-default-sink 'alsa_output.pci-0000_0c_00.4.analog-stereo'" |tee -a ~/.profile
使用以下方法查找默认水槽
pactl list sinks |grep Name |grep output | cut -d: -f2
你使用 USB,因此USB 持久可能会有帮助