我已将我的蓝牙耳机与内置有蓝牙芯片的 Ubuntu 12.04 笔记本电脑配对:
lsusb | grep 蓝牙
Bus 003 Device 003: ID 045e:0745 Microsoft Corp. Nano Transceiver v1.0 for Bluetooth
该设备已配对,借助blueman
,我已将其连接到 PulseAudio 作为接收器。音频确实在 A2DP 模式下出现,但可怕断断续续,跳跃性极强,比没有好多少。
我读了一遍,发现有一个修复方法涉及调整nice
PulseAudio 服务器的优先级。由于默认情况下,PulseAudio 按用户运行,因此我将以下内容添加到我的/etc/security/limits.conf
:
* hard rtpio 0
* soft rtpio 0
@audio hard rtpio 20
@audio soft rtpio 20
pulse hard rtpio 20
pulse soft rtpio 20
然后我将自己添加到该audio
组中,以便能够为该pulseaudio
进程安排优先级。看来pulseaudio
现在正在以优先级运行-11
:
ps -eo pri,ni,cmd | grep [p] ulse
30 -11 /usr/bin/pulseaudio --start --log-target=syslog
这意味着 PulseAudio 以优先级 -11 运行,这很好。
然而,即使重新启动后,我仍然会听到非常不连贯的音频。
我该怎么办?我想让购买的这个蓝牙耳机可以使用。
注意:我尝试将此设备与笔记本电脑旁边的 Android 平板电脑配对,并且运行良好,因此这不是无线拥塞,它似乎与 Linux 直接相关。
答案1
由于其他答案都不适用于我的系统(2012 年 MacBook Air 上的 Ubuntu 18.04 LTS),所以我在德语 ubuntuusers 维基. 德语说明的英文摘要:
输出不连贯可能是由 A2DP 实现以及它在编码之前缓冲声音的方式引起的。对我来说,更改此缓冲区的大小解决了声音不连贯的问题。您需要执行三个步骤:
查找有关蓝牙设备的必要信息(当它已连接时!)
pactl list | grep -Pzo '.*bluez_card(.*\n)*'
输出应该是这样的
Name: bluez_card.28_11_A5_84_B6_F9
Driver: module-bluez5-device.c
...
Ports:
speaker-output: Speaker (priority: 0, latency offset: 0 usec, available)
Part of profile(s): a2dp_sink, headset_head_unit
speaker-input: Bluetooth Input (priority: 0, latency offset: 0 usec, not available)
Part of profile(s): headset_head_unit
我们看到缓冲区当前的延迟为 0。在下一步中,您将需要输出的NAME
和。在此示例中,它们分别是和。PORT
bluez_card.28_11_A5_84_B6_F9
speaker-output
使用此命令模式将卡的缓冲区大小(延迟)设置为合适的值:
pactl set-port-latency-offset <NAME> <PORT> <BUFFER_SIZE_MICROSECONDS>
以下命令的延迟单位是微秒,因此我在此处对命令使用 50 毫秒的缓冲区:
pactl set-port-latency-offset bluez_card.28_11_A5_84_B6_F9 speaker-output 50000
重启蓝牙服务以应用更改
sudo service bluetooth restart
由于通常没有关于此内容的文档,您可能需要尝试更高或更低的缓冲区值。许多人在此答案的评论中发布了他们的工作延迟。查看它们以获取有关延迟值的指导。
答案2
编辑 ALSA 配置文件
sudo gedit /etc/modprobe.d/alsa-base.conf
添加行
options snd-hda-intel model=generic
到文件末尾,然后重新启动bluetooth
服务:
sudo service bluetooth restart
答案3
答案4
在 MacBook Mini 中以双启动方式运行 Ubuntu 18.04 时遇到同样的问题。尝试更改 @ConfirmAndCreateThisAccount 提到的 ALSA 配置。
但它没有起作用。
因此我使用以下命令安装了 Blueman
sudo apt-get install blueman
然后我从系统蓝牙设置中断开蓝牙设备并使用 Blueman 重新配对。现在一切都正常。甚至播放/暂停控件也能正常工作。