如何获得一致的蓝牙音频播放?

如何获得一致的蓝牙音频播放?

我正在尝试使用蓝牙音箱,因为我的集成笔记本电脑扬声器太糟糕了......扬声器是 Bose Soundlink mini,例如,可以与我的智能手机配合使用。

当我尝试将它与我的笔记本电脑(Ubuntu 14.04)一起使用时,它工作正常,直到我开始工作。然后声音开始断断续续,并出现以下日志:

Sep  3 17:29:38 franck-ThinkPad-T430s pulseaudio[3673]: [bluetooth] module-bluetooth-device.c: Skipping 30147 us (= 5316 bytes) in audio stream
Sep  3 17:29:38 franck-ThinkPad-T430s pulseaudio[3673]: [bluetooth] module-bluetooth-device.c: Skipping 79152 us (= 13960 bytes) in audio stream
Sep  3 17:29:41 franck-ThinkPad-T430s pulseaudio[3673]: [bluetooth] module-bluetooth-device.c: Skipping 3467134 us (= 611600 bytes) in audio stream

这件事发生在我在键盘上打字(无论是在 libreoffice 中还是在终端中,或者其他任何地方)。如果您询问的话,该键盘不是蓝牙键盘。

当使用内置扬声器时,我不会遇到同样的问题。

那么,是否有一个技巧可以赋予整个蓝牙音频堆栈更高的优先级并获得一致的音频回放?(蓝牙?pulseaudio?低级中断????)

更新:我的蓝牙控制器连接到(内部)USB。

$ lsusb -v -s 001:004

Bus 001 Device 004: ID 0a5c:21e6 Broadcom Corp. BCM20702 Bluetooth 4.0 [ThinkPad]

答案1

我终于找到了一个解决方案(实际上是几个):

  1. 将 threadirqs 添加到我的内核参数中
  2. 更好,但这还不够,我还必须安装 rtirq-init(你应该检查你的内核是否支持这个,见https://unix.stackexchange.com/a/55001/61603

然后我得到了(几乎)完美的蓝牙声音播放。

另一个选项似乎是使用 linux-lowlatency 内核。我仍需测试,但它应该可以工作。不清楚的是缺点(功耗?)。

相关内容