无法将卡配置文件设置为“a2dp_sink”,帮助

无法将卡配置文件设置为“a2dp_sink”,帮助

我在 ubuntu 桌面上使用蓝牙耳机,它有蓝牙适配器。现在我每次都能连接耳机(一开始不是这样,每次我想连接时都需要修理它们)。所以现在它可以连接,但不输出任何声音。有时重新启动脉冲音频有帮助,有时没有,我对此非常厌倦,我想找出问题的根源。

pacmd set-card-profile $(pacmd list-cards | grep -Pzo '(?<=index: )(\d+\n)(?=.*bluez_card)') a2dp_sink;

这给了我Failed to set card profile to 'a2dp_sink'。帮助我进一步挖掘。

#! /usr/bin/env zsh
pacmd set-card-profile $(pacmd list-cards | grep -Pzo '(?<=index: )(\d+\n)(?=.*bluez_card)') off;
echo -e 'disconnect 04:52:C7:0D:9E:13\n quit'|bluetoothctl
sleep 5
echo -e 'connect 04:52:C7:0D:9E:13\n quit'|bluetoothctl
sleep 5
pacmd set-card-profile $(pacmd list-cards | grep -Pzo '(?<=index: )(\d+\n)(?=.*bluez_card)') a2dp_sink;

这没有帮助。

答案1

我见过这个错误,这是由于 pulseaudio 或 bluez 的一个错误造成的。您可能会发现将音频配置文件设置为关闭,然后断开耳机连接,重新连接到耳机,然后使用 A2DP 可能就不会有问题了。看来您的脚本可能会这样做,但您可能会发现 pylover 的 a2dp.py python 脚本对您有用

wget https://gist.githubusercontent.com/pylover/d68be364adac5f946887b85e6ed6e7ae/raw/d698974910bbb7d016ec0ad08c1bf41b4b524364/a2dp.py
alias headphones="a2dp.py 04:52:C7:0D:9E:13"

然后当你想使用耳机时,只需输入headphones

答案2

在 Elementary OS Hera 5.1.7(基于 18.04.4)上使用内核 5.8.0-39(出于硬件兼容性原因),我能够通过以下方式解决此问题:

  1. 安装 pavucontrol 和 blueman 以及
  2. 编辑 /etc/bluetooth/main.conf 中的“general”下的“MultiProfile=multiple”(参见https://wiki.archlinux.org/index.php/Bluetooth_headset#A2DP_not_working_with_PulseAudio)更改“AutoEnable = false”(不确定是否有任何作用)

在此之前,我无法连接到蓝牙音频接收器,除非我使用 bluetoothctl。此时,它只会连接到双工低质量接收器 (HSP/HFP),而不是 A2DP (高音频质量)。

现在它似乎能够在任一模式下运行得很好,尽管可以即时切换模式,但会出现一致的错误:

[  994.225669] Bluetooth: hci0: urb 0000000085e83e50 submission failed (90)
[  994.225675] Bluetooth: hci0: sending frame failed (-90)
[  994.238145] Bluetooth: hci0: SCO packet for unknown connection handle 0
[  994.238153] Bluetooth: hci0: SCO packet for unknown connection handle 0
[  994.238155] Bluetooth: hci0: SCO packet for unknown connection handle 0
[  994.238157] Bluetooth: hci0: SCO packet for unknown connection handle 0

答案3

我修复它的方法是完全废除 gdm,因为它对我的 A2DP 接收器非常依赖,而且看起来没有人修复它。我认为它坏了。

sudo apt-get -y install slick-greeter

然后选择“lightdm”。再好不过了。

答案4

编辑 - 请参阅下面 Sam Jaques 的警告。这对我有用,但使用时请自担风险。

我尝试过将配置文件设置为关闭,断开并重新连接蓝牙设备,但仍然无法切换到a2dp_sink。我终于找到了一个可行的解决方案Debian wiki 上

如果您使用的是 Gnome,Gnome 显示管理器 (GDM) 会在会话启动时“捕获” A2DP 接收器,这就是设备无法使用它的原因。如果您尝试使用声音设置 GUI 更改配置文件,您会注意到您可以选择A2DP 接收器下拉菜单中,但它会在关闭对话框时切换回来。如果你点击测试扬声器你会注意到它仍然只显示单核细胞增多症

文章中有详细的内容,但总结如下:

创建并将这些行添加到/var/lib/gdm3/.config/pulse/client.conf

autospawn = no
daemon-binary = /bin/true

更改文件的所有者和组:

sudo chown gdm:gdm /var/lib/gdm3/.config/pulse/client.conf

然后禁用 pulseaudio 启动:

rm /var/lib/gdm3/.config/systemd/user/sockets.target.wants/pulseaudio.socket

将其添加到/etc/pulse/default.pa

load-module module-switch-on-connect

然后重新启动。

相关内容