Pulseaudio set/check 默认源

Pulseaudio set/check default source

所以问题是,

  1. 如何设置默认源?
  2. 如何列出当前的默认来源?

详情

我的 linux 设备上有 4 个声音输入源。这是 pactl list sources:

的结果
1   alsa_input.pci-0000_00_1b.0.analog-stereo   module-alsa-card.c  s16le 2ch 44100Hz SUSPENDED
2   alsa_input.usb-Generic_Rmoncam_HD_720P_200901010001-02.analog-stereo    module-alsa-card.c  s16le 2ch 48000Hz   SUSPENDED
3   alsa_input.usb-Generic_Rmoncam_HD_720P_200901010001-02.analog-stereo.2  module-alsa-card.c  s16le 2ch 48000Hz   SUSPENDED
5   alsa_output.pci-0000_00_1b.0.hdmi-stereo.monitor    module-alsa-card.c  s16le 2ch 44100Hz   SUSPENDED

我尝试通过多种方式将源 1 alsa_input.pci-0000_00_1b.0.analog-stereo 设置为我的默认源:

1.change /etc/pulse/client.conf,添加以下行:

default-sink = alsa_output.pci-0000_00_1b.0.hdmi-stereo

default-source = alsa_input.pci-0000_00_1b.0.analog-stereo

2.change /etc/pulse/default.pa,添加以下行:

### Make some devices default
set-default-source alsa_input.pci-0000_00_1b.0.analog-stereo

配置完成后,我尝试pulseaudio -D并重启设备,但配置没有生效。我不知道如何列出当前的默认源和接收器,所以我使用以下命令来验证:

$> pactl load-module module-loopback latency_msec=500
$> pactl list sources short | grep RUNNING
   3    alsa_input.usb-Generic_Rmoncam_HD_720P_200901010001-02.analog-stereo.2  module-alsa-card.c  s16le 2ch 48000Hz   RUNNING

pactl 仍然使用我的 USB 摄像头的麦克风作为默认来源。

系统信息

Linux内核:

Linux D2-A109 4.15.0-55-generic #60-Ubuntu SMP Tue Jul 2 18:22:20 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

PulseAudio 版本:

$> pulseaudio --version
   11.1

欢迎任何建议!

最后..我发现它只是由麦克风引起的"unplugged"...并且设置默认源的方法是正确的。

找到Q2的答案"How can I list the current default source?":

$> pacmd list-sources | grep -e 'index:' -e device.string -e 'name:' -e 'available'
* index: 1
name: <alsa_input.pci-0000_00_1b.0.analog-stereo>
    device.string = "front:0"
    analog-input-front-mic: Front Microphone (priority 8500, latency offset 0 usec, available: no)
    analog-input-rear-mic: Rear Microphone (priority 8200, latency offset 0 usec, available: yes)
    analog-input-linein: Line In (priority 8100, latency offset 0 usec, available: no)
index: 2
name: <alsa_input.usb-Generic_Rmoncam_HD_720P_200901010001-02.analog-stereo>
    device.string = "plug:front:1"
    analog-input-mic: Microphone (priority 8700, latency offset 0 usec, available: unknown)
index: 3
name: <alsa_input.usb-Generic_Rmoncam_HD_720P_200901010001-02.analog-stereo.2>
    device.string = "plug:front:2"
    analog-input-mic: Microphone (priority 8700, latency offset 0 usec, available: unknown)
index: 7
name: <alsa_output.pci-0000_00_1b.0.hdmi-stereo.monitor>
    device.string = "0"

对应PulseAudio wiki索引前面的*表示当前默认输入

为了避免有人像我一样傻,我们可以通过检查sources打印结果中的'available'来判断麦克风(source)是否插入。

How can I list the current default source?

使用 pulseaudio 15.0,您现在只需 运行 pactl get-default-source 即可获取设备字符串,而无需在输出上求助于 运行ning sed/awk/grep 等。