Bluez 多个音频源

Jul*_*ard 9 bluetooth bluez

使用 bluez 堆栈,是否可以连接多个音频源?如何 ?如果不是,是否可以通过任何其他方式?如果可能,是否可以将不同的蓝牙版本(如低功耗)与旧版本混合使用?

如果不可能,我认为一个(昂贵的)解决方案是在我的(物理)音频混合器后面插入多个(物理)蓝牙接收器^-^

背景:我正在尝试构建一个“媒体服务器”,我希望手机能够将音频流式传输到它,但我不想听到“请,你能断开你的[实际上不播放音乐]手机的连接吗?我可以连接我的”。

phi*_*ppe 3

有报道称这应该是可能的,特别是主要开发人员的邮件列表响应指出这可以通过 audio.conf 来完成。但这个文件不再随 BlueZ 5 一起提供,并且当前的源代码没有引用它曾经包含的部分(例如“[A2DP]”或“[Headset]”)。

如果您正在运行 Bluez 4,这可能会很有用。maemo论坛上的这篇文章(我相信 maemo 是 Linux 中蓝牙音频工作的主要赞助商)显示了一个示例 audio.conf 文件,其中选项SourceCount设置为 2。答案说你必须将SBCSources,MPEG12SourcesMaxConnected设置为大于一的数字。

使用 BlueZ 5 和 Pulseaudio,当我尝试连接第二个源时,它会立即断开连接。使用hcidump,我可以看到由接收音频的设备发送的这个数据包全部出了问题:

< ACL data: handle 62 flags 0x00 dlen 10
    L2CAP(d): cid 0x0042 len 6 [psm 25]
      AVDTP(s): Discover rsp: transaction 0 nsp 0x00
        ACP SEID 1 - Audio Source
        ACP SEID 2 - Audio Sink (InUse)
Run Code Online (Sandbox Code Playgroud)

请注意接收器如何标记为InUse。看到这一点后,源就断开了。

很难说这个配置选项去了哪里,BlueZ 因其稀疏的文档而臭名昭著。在 BlueZ 5 中,大部分音频职责已转移到其他程序中,例如 Pulseaudio。它们通过 DBus 进行通信,Pulseaudio 向 BlueZ 注册端点。也许Pulseaudio应该注册多个端点,但在pulseaudio-module-bluetooth-discover中似乎没有关于多个源的任何选项。