我的 Xubuntu 13.10 上的 Pavucontrol 检测到我的蓝牙耳机,但只有在我输入以下命令后才能检测到:
pulseaudio -k
sudo alsa force-reload
几秒钟后,耳机出现在配置选项卡中。
我也尝试插入行
load-module module-switch-on-connect
在 /etc/pulse/default.pa 中,但它没有帮助。我尝试过清除和自动删除并重新安装从 alsa 到 pulseaudio 和 pulseaudio-module-bluetooth 的所有内容。毫无效果。
有没有一种解决方法可以不使用 force-reload 命令来加载耳机?让 pulseaudio 守护进程自动识别设备?
我尝试添加:
pcm.bluetooth {
type bluetooth
device "XX:XX:XX:XX:XX:XX"
profile "auto"
}
到我的主目录中的 .asoundrc 文件,但这并没有什么区别
终止 pulseaudio 守护进程后,我的均匀音量热键停止工作。我必须分配
amixer set Master 4%- -q unmute
amixer set Master 4%+ -q unmute
到其他按键组合来从键盘管理音量。将命令分配给热键不起作用。音量键如何绑定到守护进程?是否有其他方法将按键绑定到新守护进程(重新启动后)?
更新
找到问题了。使用命令
pactl list | grep -i module-bluetooth-discover
我发现蓝牙发现模块没有加载。
但是 /etc/pulse 中的 default.pa 文件包含以下行
.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
.endif
那么为什么该模块在 pulseaudio 启动时没有加载?
发出命令后
sudo pactl load-module module-bluetooth-discover
蓝牙耳机正常工作,自动检测,无需杀死并重启alsa。
答案1
我在另一个答案上找到了解决这个问题的方法,问题是 pulseaudio 蓝牙模块是在 X11 之前加载的,更改几个配置文件就可以了:PulseAudio 无法加载蓝牙模块 15.10/16.04/16.10
vim /etc/pulse/default.pa
注释掉(在行首使用 # 标记)以下行:
#load-module module-bluetooth-policy
#load-module module-bluetooth-discover
现在编辑文件/usr/bin/start-pulseaudio-x11
找到以下几行:
if [ x”$SESSION_MANAGER” != x ] ; then
/usr/bin/pactl load-module module-x11-xsmp “display=$DISPLAY session_manager=$SESSION_MANAGER” > /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
#
# Added per StackExchange http://askubuntu.com/questions/366032/pulseaudio-not-detecting-bluetooth-headset-automatically
#
/usr/bin/pactl load-module module-bluetooth-policy
/usr/bin/pactl load-module module-bluetooth-discover
fi
这样,Pulse 音频的蓝牙模块将不会在启动时下载,而是在 x11 启动后下载。
此修复与以下当前建议相悖: https://freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Bluetooth/
答案2
这:
sudo apt-get install pulseaudio-module-bluetooth
sudo pactl load-module module-bluetooth-discover
在 Ubuntu 14.10(Lenovo x240)上为我工作,至少我的蓝牙设备在 pulseaudio 中列出。
答案3
Blueman 中的一些(遗留的?)代码似乎存在问题,故意卸载 module-bluetooth-discover
在启动时(即从 加载后)/etc/pulse/default.pa
。有关更多详细信息,请参见:https://github.com/blueman-project/blueman/issues/64。
答案4
分析了大量帖子后,我的结论是,blue man 故意卸载了 module-bluetooth-discover 模块,所以对我来说,解决方案是从我的系统中卸载 blueman。之后,一切正常。