我已经花了好几个小时来让我的蓝牙音频设备运行起来。
系统:Ubuntu 16.04 LTS Xenial,已安装所有更新,运行在联想 Y50 笔记本上
设备:蓝牙接收器 MR230,带模拟音频输出。它用于连接到旧的高保真音响系统。该设备不会自动连接,但我可以
bluetoothctl
毫无问题地找到、配对、信任和连接它。蓝牙管理器将其显示为耳机。该
pactl list short
命令显示,模块module-bluetooth-discover
、module-bluez5-discover
、module-switch-on-connect
和module-bluetooth-policy
都在运行(在我手动启动它们之后)
但是,我仍然无法选择该设备,pavucontrol
因为它没有出现在那里。在这些尝试中,我可能弄乱了一些配置文件,但它应该仍然可以工作,因为所有必要的模块都已加载并且设备已连接。
有任何想法吗?
答案1
对我来说,pulseaudio 没有接收器的原因是使用hcitool
而不是bluetoothctl
来连接耳机。使用 时bluez5
,后者是首选,前者不能保证能正常工作。
但即使有pavucontrol
可选择的接收器也没有声音。我当然听到了接收器睡眠和非暂停转换之间的噪音水平变化,但最终仍然没有声音真正播放(接收器未静音且音量最大)。此外,pulseaudio 拒绝使用 A2DP 配置文件,称module-bluez5-device.c: Profile 'a2dp' not valid or not supported by device
尽管bluetoothctl <<< "info 00:11:22:33:44:55"
清楚地列出了音频接收器UUID 0000110b-0000-1000-8000-00805f9b34fb
。因此 PA 使用 HSP/HFP 或其他什么,这意味着硬编码 8kHz 单声道。
最后,我是如何工作 A2DP在 Ubuntu 16.04.1 上pulseaudio 9.0
从源代码编译。非常可预测的构建;对于那些了解一些编译的人来说,这是一个简短的记录:
git clone --branch master git://anongit.freedesktop.org/pulseaudio/pulseaudio \
&& cd pulseaudio
./autogen.sh
./configure \
--enable-bluez5 \
--enable-bluez5-native-headset \
--with-speex \
&& make -sj3
只需找到apt install
那些-dev
包并configure
请求即可。make
花费约 100 秒完成。
然后进行快速就地测试:
echo 'autospawn=no' > ~/.config/pulse/client.conf; killall pulseaudio
src/pulseaudio --daemonize=no --log-level=info -F /etc/pulse/default.pa
至此我已经让它工作了。
$ src/pulseaudio --version
pulseaudio 9.0-129-gf7b8
最后,我会将其打包成一个.deb
,通过系统范围安装dpkg -i
并撤消autospawn=no
更改。
答案2
我发现这个答案这里作者:路易斯·加尼翁
永久的解决方案是添加 blueman PPA 并将你的软件包更新到已修复错误的最新版本:https://launchpad.net/~blueman/+archive/ubuntu/ppa
sudo add-apt-repository ppa:blueman/ppa
sudo apt-get update
sudo apt-get upgrade
这样,您就不必再运行
sudo -i pactl load-module module-bluetooth-discover
每次都执行命令,但只执行一次。对我而言,14.04 LTS (Trusty) 有效
来源:http://www.lxle.net/forums/discussion/503/how-to-sink-audio-a2dp-to-your-bluetooth-headset/p1