aplay 列出了设备,但pulseaudio 认为它已锁定并且不会检测到它

aplay 列出了设备,但pulseaudio 认为它已锁定并且不会检测到它

更新 2021-07-08:我现在使用 Pop!_OS 21.04 和这个问题出现已解决。我刚刚测试过脉冲音频 14.2管道线 0.3.24我能够在一分钟内断开并重新连接耳机(通过 USB/立体声插孔适配器连接)大约 10 次。我在下面描述的问题没有再次出现。我认为这也适用于 Ubuntu 21.04。

我使用的是 Pop!_OS 20.10,但当我“过于频繁”或“多次”断开并重新连接 USB 麦克风时,我遇到了一个间歇性问题,该问题似乎会可靠地发生。我想至少了解一种比重新启动机器更温和的解决方法。

它是这样的:我断开 USB 麦克风,然后重新连接。如果我在 30 秒内执行此操作 2 或 3 次,最终pulseaudio 会告诉我:

    D: [pulseaudio] module-udev-detect.c: /dev/snd/controlC1 is accessible: yes                                                             
    D: [pulseaudio] module-udev-detect.c: /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/sound/card1 is busy: no                         
    D: [pulseaudio] module-udev-detect.c: Loading module-alsa-card with arguments 'device_id="1" name="usb-Blue_Microphones_Yeti_Stereo_Microphone-00" card_name="alsa_card.usb-Blue_Microphones_Yeti_Stereo_Microphone-00" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes avoid_resampling=no card_properties="module-udev-detect.discovered=1"'                        
    D: [pulseaudio] reserve-wrap.c: Device 'Audio1' already locked.
    E: [pulseaudio] module.c: Failed to load module "module-alsa-card" (argument: "device_id="1" name="usb-Blue_Microphones_Yeti_Stereo_Microphone-00" card_name="alsa_card.usb-Blue_Microphones_Yeti_Stereo_Microphone-00" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes avoid_resampling=no card_properties="module-udev-detect.discovered=1""): initialization failed.
    I: [pulseaudio] module-udev-detect.c: Card /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/sound/card1 (alsa_card.usb-Blue_Microphones_Yeti_Stereo_Microphone-00) failed to load module.
    I: [pulseaudio] client.c: Created 3 "Native client (UNIX socket client)"

我在各种pulseaudio工具中看不到我的麦克风,尽管aplay在中列出了该设备aplay -l

    card 1: Microphone [Yeti Stereo Microphone], device 0: USB Audio [USB Audio]
      Subdevices: 1/1
      Subdevice #0: subdevice #0

如果我重新启动,那么我可以再次连接我的 USB 麦克风,但我正在寻找一种比这更温和的解决方法,当我“过于频繁地”断开并重新连接 USB 音频设备时,它可以重置任何混乱的状态。

答案1

我在这里关注了一些评论:

https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/809

杀死pipewire然后重新启动pulseaudio解决了这个问题:

systemctl --user stop pipewire.service
systemctl --user restart pulseaudio.service

这似乎是管道线和脉冲音频之间的一场竞赛。我对pipewire一无所知,但有时它似乎在pulseaudio可以访问USB音频设备之前锁定了它。

要永久禁用管道线:

sudo systemctl --global stop pipewire.service
sudo systemctl --global disable pipewire.service

我不知道 pipelinewire 提供了哪些我可能会错过的服务,但到目前为止还没有:)

相关内容