如何使用 2 个蓝牙适配器配置 2 个蓝牙扬声器?

如何使用 2 个蓝牙适配器配置 2 个蓝牙扬声器?

我通常使用 pulseaudio 将音乐传输到我的电脑扬声器和蓝牙扬声器。到目前为止没有出现大问题。但后来我想到连接第二个蓝牙扬声器。

我使用 Kensington 蓝牙 v4.0 适配器提供的蓝牙连接,但当我尝试连接 2 个扬声器时,第二个扬声器立即连接并断开连接。经过一番研究,我得出结论,我的蓝牙接口仅支持同时进行一个 A2DP 流传输,因此解决方案是购买多流适配器(不确定是否存在)或尝试并行使用第二个蓝牙适配器(这就是我正在尝试的)。

我的想法如下:我将扬声器 1 连接到加密狗 1,将扬声器 2 连接到加密狗 2,配置 pulseaudio 以同时向两个扬声器传输音频,然后坐下来放松。好吧...我无法让它工作。

当我运行 hciconfig 时,我看到了 2 个 hci0 和 hci1,但当它们一起运行时,我无法检测到任何设备。我尝试使用 hciconfig 禁用其中一个加密狗以连接另一个并进行测试,但它不起作用。如果两个加密狗单独连接到 PC 上,它们都可以正常工作,但我无法让它们同时工作。我也尝试了 blueman,但我得到了与命令行相同的行为。所以我的问题是:

  • 是否可以在 Ubuntu 14.04 上同时配置 2 个蓝牙适配器?
  • 是否可以同时将音频传输到 2 个蓝牙接口?

如果任何问题的答案都是“是”,我真的很想知道如何解决。

答案1

好的,我发现这是可能的,并且我发现了如何:

  1. 我安装了所有 bluez(bluez + bluez-*)软件包,并清除了与蓝牙相关的任何其他应用程序(blueman、bluewho 等)。我不知道这是否严格相关,但直到我没有这样做,我才能够连接到扬声器。

    我还安装了所有 pulseaudio 实用程序并配置了同时输出虚拟设备。

  2. 连接你的 2 个加密狗。它们将获得名称 hci0 和 hci1

  3. 您应该使用以下命令检查设备是否未被阻止:

    rfkill list

    如果您发现蓝牙接口有任何阻塞(此命令还会显示您的 wifi),您需要解除阻塞(检查 rfkill 手册页以继续)。

  4. 使用以下命令检查没有设备与您的蓝牙接口配对:

    bt-device -a hci0 -l

    bt-device -a hci1 -l

    如果有配对的设备,我建议在继续之前删除所有以前的配对:

    bt-device -a hciX -r XX:XX:XX:XX:XX:XX

  5. 使用以下命令检查是否可以从加密狗访问您的设备:

    hcitool -i hci0 scan

    hcitool -i hci1 scan

  6. 通过上一步,您将获得设备的蓝牙 mac 地址(字符串类似于 XX:XX:XX:XX:XX:XX)。使用这些数字,您应该将扬声器与它们配对(我在 mac 地址末尾添加了 1 和 2 以识别 2 个不同的扬声器):

    bt-device -a hci0 -c XX:XX:XX:XX:XX:X1

    bt-device -a hci1 -c XX:XX:XX:XX:XX:X2

  7. 使用以下方式连接扬声器播放音频:

    bt-audio -a hci0 -c XX:XX:XX:XX:XX:X1

    bt-audio -a hci1 -c XX:XX:XX:XX:XX:X2

此时您应该能够在 PulseAudio 音量控制 GUI 上找到 2 个扬声器,您可以在那里播放和调整延迟、音量等。


额外的信息:

嗨,对于那些正在阅读并赞同这篇文章的人来说,这是一个小更新。

如果您想通过多房间音频系统连接多个扬声器,蓝牙可能根本不是最佳解决方案。事实证明,蓝牙音频流的时间会根据您在源和接收器之间发现的干扰而漂移,这使得几分钟后您最终会发现音乐在每个扬声器中播放的时间不同。即使您完美地调整了延迟(允许您在接收器之间设置延迟的参数),几分钟后音频也会在不同的接收器之间明显漂移。

由于我想设置一个多房间音频系统,所以这个解决方案并没有真正奏效,最后我找到了一些相对便宜的设备,这些设备明确支持通过 wifi 实现多房间音频,而不是原来使用多个蓝牙适配器的廉价想法。

相关内容