我有一个 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 次相对应,并且可以重复,虽然并不完美,但确实有效。