重启蓝牙 3 次后才能切换蓝牙配置文件

重启蓝牙 3 次后才能切换蓝牙配置文件

我有一个 August EP650 蓝牙耳机,在切换音频配置文件时遇到问题。

我经常在电话(HSP/HFP)和音乐收听(A2DP)之间切换,所以这很烦人。

每次启动系统时,我都可以使用 GUI 切换配置文件:

切换对话

在系统日志中我得到:

Aug 16 08:59:20 orange pulseaudio[7711]: [pulseaudio] bluez5-util.c:     
   Transport Acquire() failed for transport 
   /org/bluez/hci0/dev_00_12_D0_02_90_27/fd0 (Operation Not Authorized)

我已经按照建议进行了修改这里

Edit the file:
/etc/pulse/default.pa
and comment out (with an # at the beginning of the line) the following line:
#load-module module-bluetooth-discover
now edit the file:
/usr/bin/start-pulseaudio-x11
and after the lines:
   if [ x”$SESSION_MANAGER” != x ] ; then
    /usr/bin/pactl load-module module-x11-xsmp “display=$DISPLAY session_manager=$SESSION_MANAGER” > /dev/null
    fi
add the following line:
    /usr/bin/pactl load-module module-bluetooth-discover

但问题仍然存在。

现在,如果我执行大约 3 次sudo service bluetooth restart并且我的耳机关闭,我可以重新连接耳机并且切换可以完美地进行。

我该如何修复它?

编辑

pacmd->list-cards打印

profiles:
    headset_head_unit: Headset Head Unit (HSP/HFP) (priority 20, available: unknown)
    a2dp_sink: Hi-Fi-Wiedergabe (A2DP-Senken) (priority 10, available: yes)
    off: Aus (priority 0, available: yes)

但在上述情况下,我已连接到 headphone_head_unit - 但仍然无法更改为 a2dp_sink

编辑2

我发现,当我从完全加载中删除模块x11-pulseaudio然后加载模块时通过手动连接耳机

$ pacmd
Welcome to PulseAudio 8.0! Use "help" for usage information.
>>> load-module module-bluetooth-discover

它可以直接工作——问题是,我怎样才能实现自动化?

答案1

从命令行尝试。您可以使用pacmd更改音频选项。更改默认输出接收器的命令是

$ sudo pacmd set-default-sink "OUTPUTNAME"

改变输入的命令是

$ sudo pacmd set-default-source "SOURCENAME"

我认为问题可能是您没有sudo权限。但是,我不确定是否pacmd需要 root 权限。尝试一下,然后告诉我是否有效。

如果您不知道所需水槽的名称,请尝试列出它们

$ sudo pacmd list-sinks

如果您需要任何进一步的帮助,请在评论中告诉我。

答案2

我找到了一种解决方法,可以帮助我解决与 Bose OE Soundlink 相同的问题。

看起来module-bluetooth-discover只有在 X11 会话启动后加载才能正常工作。

因此您可以使用以下解决方法:

在文件中/etc/pulse/default.pa注释掉该行

load-module module-bluetooth-discover

所以看起来

#load-module module-bluetooth-discover

/usr/bin/pactl load-module module-bluetooth-discover然后在文件中添加/usr/bin/start-pulseaudio-x11以下内容:

set -e

if [ x"$DISPLAY" != x ] ; then

    /usr/bin/pactl load-module module-x11-publish "display=$DISPLAY" > /dev/null
    /usr/bin/pactl load-module module-x11-bell "display=$DISPLAY" "sample=bell.ogg" > /dev/null
    /usr/bin/pactl load-module module-x11-cork-request "display=$DISPLAY" > /dev/null

    if [ x"$KDE_FULL_SESSION" = x"true" ]; then
       /usr/bin/pactl load-module module-device-manager "do_routing=1" > /dev/null
    fi

    if [ x"$SESSION_MANAGER" != x ] ; then
    /usr/bin/pactl load-module module-x11-xsmp "display=$DISPLAY session_manager=$SESSION_MANAGER" > /dev/null
    fi
    /usr/bin/pactl load-module module-bluetooth-discover
fi

现在可以确保module-bluetooth-discover在 X11 启动后加载。

重新启动后您就能够更改配置文件了。

答案3

我发现当我的 plantronics back beat pro 耳机连接到 16.04 上的 Intel Corporation Wireless 7260 时,它将首先以 HSP 模式连接,并且不会切换到 A2DP,除非断开连接并重新连接,然后它才会允许切换。我可以使用声音设置控制面板小程序毫无延迟地执行此操作

这似乎与您建议的 3 次相对应,并且可以重复,虽然并不完美,但确实有效。

相关内容