如何将多个扬声器连接在一起并同时连接到手机?

Posted

技术标签:

【中文标题】如何将多个扬声器连接在一起并同时连接到手机?【英文标题】:How to connect multiple speakers together and connect to a phone at the same time? 【发布时间】:2014-06-16 13:34:47 【问题描述】:

是否可以将 4 个扬声器连接在一起,而这 4 个扬声器需要连接到手机才能播放音乐?我不需要 4 个扬声器同时播放音乐。

我只想让 4 个扬声器中的 1 个播放音乐,但我需要控制应该播放音乐的那个(应该只播放离手机最近的扬声器)。

我希望 4 个扬声器能够相互通信以投票给 1 个扬声器播放音乐,这就是我需要将这些扬声器连接在一起的原因。手机无需申请即可选择合适的扬声器,扬声器必须自己选择。

更新 1:

    为了在扬声器之间进行交流,我将在它们之间创建一个piconet。然后,扬声器将更新他们与手机之间的距离。壁橱扬声器将播放音乐。

    要计算距离,我想知道是否可以使用Proximity Profile。是否可以使用Proximity Profile 计算电话为reporter 和扬声器为monitors 的距离?

假设 2 点是可能的。我可以断开正在播放的扬声器,然后将另一个扬声器连接到手机以切换播放音乐角色吗?

步骤如下: 扬声器 1 正在播放音乐 -----> 手机正在向扬声器 2 移动。 扬声器 1 断开与电话的连接,扬声器 2 连接到电话。 扬声器 2 正在播放音乐,扬声器 1 停止。

更新 2: 我放弃了让扬声器如此智能的想法。相反,我将在智能手机上运行一个应用程序来处理距离监控和切换到最近的扬声器。

我会接受@Floris 的回答来结束这个问题。 谢谢

【问题讨论】:

【参考方案1】:

为此,您的扬声器需要非常智能 - 从本质上讲,每个扬声器都是一个小型 android 设备。假设你想给他们那么多智慧,那么步骤是:

每个扬声器都与手机“配对”(假设它们已通过蓝牙连接) 每个扬声器都与所有其他扬声器“配对”(因此他们知道其他扬声器的存在) 这些配对中的每一个都有自己的一组通信协议: 1) 对于电话到扬声器,最近的扬声器应传达其播放音乐的可用性 2)电话到电话,他们必须比较距离。每部电话都与其他电话交流其距离。如果在给定的时间段内它似乎不是最接近的,它会向其他三个传达“我没有在播放音乐”。如果它在上次更新之前一直在播放音乐,它会与手机通信“我遥不可及”并断开连接。 3) 另一方面,如果说话者成为“山中之王”,它应该将其传达给手机,因此手机将开始向其发送信息。

这就留下了“哪个距离最近”的问题——换句话说,说话者对自己与手机的距离的了解程度如何。 detailed specification explains how to get the path loss,尤其是the transmit power level,它与距离不同,而是一个合理的代理(距离越远,路径损耗越大)——通常你更关心信号强度而不是距离。

最后,您需要建立一种机制,以防止“几乎相同距离”的两个扬声器开始在通道上相互争斗 - 通常您通过创建滞后来做到这一点(当前扬声器获得 '5 分优势' 超过任何其他人,因此它似乎是最接近的,除非它真的不是——在这一点上,一个新的扬声器成为主人,它获得了优势,并且它将一直如此,直到它真的不再是最接近的)。

对于“5 点优势”,您可以阅读任何内容 - 也许链路损耗以 dB 表示,并且您报告的损耗小于实际值(例如,如果损耗为 -43 dB,您可能会报告 -40 dB)

这是一个大项目 - 我很难考虑一个用例(也许一个人穿过博物馆,通过附近的扬声器听旁白)。祝你好运。

【讨论】:

您关于“电话到电话”通信的第二点是无效的恕我直言,因为实现有one smart phonefour speakers。如果我错了,请纠正我。 @trandatnh - 不,该应用程序需要“智能扬声器”,因为它旨在与“哑手机”(即没有特定应用程序的手机)一起使用。这需要说话者之间相互交流——这使得这是一个非常复杂(但非常有趣)的问题。【参考方案2】:

是的,基本上,这是可能的。但是,如果您想要的是只有扬声器应该决定哪一个播放音乐,您将需要对它们进行编程。所以你需要在每个扬声器中安装一个芯片,或者一个控制所有四个扬声器的控制器,但无论如何,你需要一些硬件来编程。在我看来,最好的方法是在应用程序中执行此操作,即使这不是您想要的。

【讨论】:

感谢@Florian.C。是的,我确实想对扬声器进行编程。你能给出一个具体的方法吗?拥有应用程序必须更容易,但我选择不拥有应用程序。我希望扬声器可以在任何设备上使用,无论其操作系统如何。【参考方案3】:

这是一个大工程... 为什么?

1.) 假设 Proximity Profile 确实有效...在检查 4 个扬声器的距离时,您需要知道您的手机当前连接的是哪个扬声器。

2.) 我不同意你所说的关于扬声器将决定它将连接哪个正确的扬声器。因为您需要在手机中制作一个程序来决定它.. 如果真的是这样,那么就像上面的帖子一样,您需要对硬件和芯片有广泛的了解。好吧,我更喜欢让手机决定。

3.) 您需要一个程序来每秒检查您的手机与其他 4 个扬声器的距离......然后您将其配置为自动连接(以防需要密码或任何其他安全问题)发现有一个更近的扬声器。

这个想法是可能的......而且很棒......

【讨论】:

我同意你的第二点。我需要一个在智能手机上运行的应用程序来控制它。 实际上,一旦您知道如何在智能手机上制作应用程序并使用您所说的“接近配置文件”......好吧,一切都很好...... 我正在考虑如何制作一个应用程序以在多个扬声器上使用Proximity Profile。无论如何,这种方法比原来的方法更可行。 你必须阅读这个:***.com/questions/19639891/… 这个帖子有 android 支持问题.. 所以最好在使用前阅读 Proximity Profile 但基于这个链接:developer.bluetooth.org/DevelopmentResources/… 我认为它支持一些设备。【参考方案4】:

不,不可能。您无法将扬声器连接到手机。一个也没有。只有一个耳机。

【讨论】:

为什么不用扬声器?市场上有很多bluetooth speaker。 你叫那个扬声器吗?

以上是关于如何将多个扬声器连接在一起并同时连接到手机?的主要内容,如果未能解决你的问题,请参考以下文章

iOS8 AVAudioEngine 如何将麦克风输入路由到(底部)扬声器输出?

马兰士sa30n如何便捷用wifi

防止 RPi 4 通过 a2dp 协议连接

在 Java 中,如何录制发送到扬声器的声音输出? [复制]

当airpods连接时,routeChangeNotification在音频切换到扬声器后检测newDeviceAvailable

如何在 C++ 中只用一个扬声器播放声音?