Pulseaudio 无法自动检测蓝牙耳机

adi*_*174 28 pulseaudio bluetooth alsa

我的 Xubuntu 13.10 上的 Pavucontrol 检测到我的蓝牙耳机,但只有在我输入命令后:

pulseaudio -k
sudo alsa force-reload
Run Code Online (Sandbox Code Playgroud)

几秒钟后,耳机出现在配置选项卡中。

我也试过插入行

load-module module-switch-on-connect
Run Code Online (Sandbox Code Playgroud)

在 /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"
   }
Run Code Online (Sandbox Code Playgroud)

到我的主目录中的文件 .asoundrc 但它没有区别

杀死pulseaudio守护进程后,我的偶数音量热键停止工作。我必须分配

amixer set Master 4%- -q unmute
amixer set Master 4%+ -q unmute
Run Code Online (Sandbox Code Playgroud)

到其他一些组合键来管理键盘的音量。将命令分配给热键不起作用。音量键是如何绑定到守护进程的?有没有其他方法可以将密钥绑定到新的守护进程(重新启动后)?

更新

发现问题了。使用命令

pactl list | grep -i module-bluetooth-discover
Run Code Online (Sandbox Code Playgroud)

我发现蓝牙发现模块没有加载。

但是我在 /etc/pulse 中的 default.pa 文件包含这些行

.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
.endif
Run Code Online (Sandbox Code Playgroud)

那么为什么模块没有在pulseaudio启动时加载?

发出命令后

sudo pactl load-module module-bluetooth-discover
Run Code Online (Sandbox Code Playgroud)

蓝牙耳机正常工作并自动检测,无需杀死并重新启动alsa。

小智 16

我在另一个答案中找到了解决方法,问题是在 X11 之前加载了pulseaudio 蓝牙模块,更改了几个配置文件即可解决此问题:PulseAudio 无法加载蓝牙模块 15.10/16.04/16.10

vim /etc/pulse/default.pa
Run Code Online (Sandbox Code Playgroud)

注释掉(在行首用#)以下行:

#load-module module-bluetooth-policy
#load-module module-bluetooth-discover
Run Code Online (Sandbox Code Playgroud)

现在编辑文件/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
Run Code Online (Sandbox Code Playgroud)

并将它们更改为:

   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
Run Code Online (Sandbox Code Playgroud)

这样 Pulse 音频的蓝牙模块将不会在启动时下载,而是在 x11 启动后下载。

此修复与当前建议背道而驰:https : //freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Bluetooth/

  • 您的补丁非常重要,因为`module-bluetooth-policy` 和`module-bluetooth-discover` 都提供了最佳体验(也是显而易见的体验)。当我连接到耳机时,我的期望是自动在那里获得声音,否则我只是取消配对 (2认同)

小智 7

这个:

sudo apt-get install pulseaudio-module-bluetooth 
sudo pactl load-module module-bluetooth-discover
Run Code Online (Sandbox Code Playgroud)

在 Ubuntu 14.10 (Lenovo x240) 上为我工作,至少在pulseaudio中列出了我的蓝牙设备。


小智 3

我知道这是一篇有点旧的帖子。但由于我最近遇到了同样的问题,我遇到了一个相当简单的解决方案:只需安装pulseaudio-module-bluetooth

sudo apt-get install pulseaudio-module-bluetooth
Run Code Online (Sandbox Code Playgroud)

http://ubuntuforums.org/showthread.php?t=1909957

祝你好运:)


小智 0

运行 Xubuntu 13.10 64 位我遇到了同样的问题。手动加载 module-bluetooth-discover 可以修复该问题。我也永久修复了它。我重新启动后,耳机可以正常工作,无需加载 module-bluetooth-discover。看来必须成功连接一次,然后才能正常工作。

我想知道为什么 default.pa 包含 module-bluetooth-discover 并且该模块存在于磁盘上但未在 pactl 列表中列出?

另请查看 pavuvontrol 中的配置选项卡并设置耳机的配置文件。我可以选择关闭/a2dp/hfp,默认为关闭,因此即使连接了耳机也不会出现脉冲音频输入或输出。