更新到16.04后,蓝牙音频A2DP模式停止工作


29

我有一个不错的蓝牙音频接收器连接到我的HiFi立体声,过去我可以在14.04中将它连接为质量很好的A2DP接收器。

升级到16.04后,设备仅以耳机的方式连接,并且尝试以A2DP模式切换时,我的系统日志中出现以下错误:

May 21 11:35:50 RRyS pulseaudio[6159]: [pulseaudio] module-bluez5-device.c: Refused to switch profile to a2dp_sink: Not connected

音频质量差强人意。我该如何解决?


希望这对某人有用。我已经花了3个小时来研究它...我喜欢升级!;-)
Rmano

Answers:


39

对我有用的是连接蓝牙设备,切换到HSP / HFP模式,断开连接,重新连接,然后再切换到A2DP模式。


4
同样在这里。但是,不应该这样,并且以前版本可以正常工作。
eldad-a

对我也是如此。但是对于a **来说,确实非常痛苦,因为它在15.10及之前的版本中几乎(几乎)完美地工作。
多拉诺

哦,相信我,我同意。这是一个巨大的痛苦。如今,我发现唯一可以正确处理BT的发行版是Solus OS。
rmfought

2
这真是太不可思议了,但是确实有效!
ArcaneDominion

1
哇靠。没想到这能奏效,但确实如此。
Parth Thakkar

35

与此相关的漏洞有很多,例如检查这个(从15.05开始)另外一个(相当老);总体原因尚不清楚。

在开始修改系统文件之前,您还可以在Ubuntu 16.04中检查Bluetooth扬声器没有声音(似乎是一个错误),并且A2DP蓝牙在16.04上不起作用(内核升级已在注释中解决)。

以下对我有用的修补程序---感谢启动板中的用户RobertFMArch论坛中的SimFox3。以下所有指令必须从root shell(sudo -i)执行。保重并进行三重检查。

  1. 首先,备份以下文件(您永远不会知道):

    cp /etc/bluetooth/audio.conf /etc/bluetooth/audio.conf.bak
    cp /etc/pulse/default.pa /etc/pulse/default.pa.bak
    cp /usr/bin/start-pulseaudio-x11 /usr/bin/start-pulseaudio-x11.bak
    
  2. 编辑/etc/bluetooth/audio.conf并使其与此相似:

    # Configuration file for the audio service
    # This section contains options which are not specific to any
    # particular interface
    [General]
    Enable=Gateway,Source
    
    # Switch to master role for incoming connections (defaults to true)
    Master=true
    
    # If we want to disable support for specific services
    # Defaults to supporting all implemented services
    #Disable=Gateway,Source,Socket
    Disable=Socket
    
    # SCO routing. Either PCM or HCI (in which case audio is routed to/from ALSA)
    # Defaults to HCI
    #SCORouting=HCI
    
    # Automatically connect both A2DP and HFP/HSP profiles for incoming
    # connections. Some headsets that support both profiles will only connect the
    # other one automatically so the default setting of true is usually a good
    # idea.
    AutoConnect=true
    
    # Headset interface specific options (i.e. options which affect how the audio
    # service interacts with remote headset devices)
    [Headset]
    
    # Set to true to support HFP, false means only HSP is supported
    # Defaults to true
    HFP=true
    
    # Maximum number of connected HSP/HFP devices per adapter. Defaults to 1
    MaxConnected=2
    
    # Set to true to enable use of fast connectable mode (faster page scanning)
    # for HFP when incoming call starts. Default settings are restored after
    # call is answered or rejected. Page scan interval is much shorter and page
    # scan type changed to interlaced. Such allows faster connection initiated
    # by a headset.
    FastConnectable=true
    
    # Just an example of potential config options for the other interfaces
    #[A2DP]
    #SBCSources=1
    #MPEG12Sources=0
    
  3. 编辑/etc/pulse/default.pa并注释掉该行

    #load-module module-bluetooth-discover
    

    (您实际上只需要#在开始时添加)

  4. 加载模块后编辑/usr/bin/start-pulseaudio-x11并添加该行;在实践中,您应该在文件末尾编辑一个节,例如/usr/bin/pactl load-module module-bluetooth-discovermodule-x11-xsmp

    if [ x"$SESSION_MANAGER" != x ] ; then
        /usr/bin/pactl load-module module-x11-xsmp "display=$DISPLAY session_manager=$SESSION_MANAGER" > /dev/null
        # add this line here:
        /usr/bin/pactl load-module module-bluetooth-discover
    fi
    
  5. 重启。

    现在,您应该可以将设备设置为A2DP并享受高品质的音乐了:

    声音设定

    请注意,有时您需要断开并重新连接设备以重新启用A2DP:

    蓝牙装置

    ...是的,这是个漏洞。但是,当它起作用时,它的效果很漂亮。

  6. 重新启动后出现问题

    在完成所有这些操作之后,有时该技巧似乎仅在下一次重新启动后才起作用。在这种情况下,请尝试遵循rmfought的回答

    对我有用的是连接蓝牙设备,切换到HSP / HFP模式,断开连接,重新连接,然后再切换到A2DP模式。

    ...也为我工作(再次,有时)。我什至必须取消配对一次重新配对的加密狗。

  7. 如果还是不行...

    如果这也不适合您,则可以尝试使用 此脚本 -它的作者正在使它保持最新。


5
ubuntu 16.04中没有audio.conf,只有main.conf可以使用吗?
乔基姆·科德

2
@JoakimKoed ---你说得对,我检查了--- audio.conf-remove升级后可能还剩下一点。我只是简单地重新创建了它---所以现在我很怀疑,也许仅需要第3点和第4点?
罗曼诺

1
第3步和第4步不适用于我,因此我按照上述方法重新创建了audio.conf,但没有修复。删除蓝牙设备并修复修复程序,但是每次您想使用蓝牙音频时都无法这样做。
Thomas Carlisle

@ThomasCarlisle很遗憾听到这个消息-第一次之后,它在这里起作用了(无需重新关联)。一定是另一回事...
Rmano

1
辉煌!它对我有用!我建议您在答案中添加对此的引用,因为所有这些似乎都可以为该问题提供完全有效的解决方案。干杯!
romanovzky

5

对于那些需要麦克风的人来说,这不一定是一个解决方案,但这在Ubuntu 16.04中对我有用:

sudo nano /etc/bluetooth/audio.conf

然后Disable=Headset在下添加[General]

[General]
Disable=Headset

并重新启动蓝牙服务

sudo service bluetooth restart

以及对这个家伙的所有信任:https : //jimshaver.net/2015/03/31/going-a2dp-only-on-linux/


不幸的是,没有为我工作。我的蓝牙基座图标变灰了……也许是驱动程序/模块?XPS 13 9350和Ubuntu 16.04。
Dolanor '16

@Dolanor不确定是否仍然存在问题,但是如果底座图标变灰,则很可能意味着您的蓝牙适配器已被软阻止。尝试rfkill unblock bluetooth,甚至bluetoothctl再尝试一次power on(在bluetoothctl-CLI中)。
FMaz

这在我的情况下有效zorinos 12
FDisk

在Ubuntu 18上,没有/etc/bluetooth/audio.conf文件。我添加Disable=Headset/etc/bluetooth/main.conf,重新启动了服务,重新连接了耳机,但默认情况下是音频配置文件off。不确定是否可行?
Dan Dascalescu
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.