我想在多个 iOS 设备上同时(以毫秒为单位)触发一个事件(例如播放音乐)
我的方法是保持套接字连接并向 iOS 设备发送时间戳(从当前时间起 10 秒后),并在该时间戳触发 iOS 设备上的事件。
问题是 iOS 设备可能会存在 1 或 2 秒的差异,这会导致不同步。甚至时间戳在每个设备上都指出相同的时间(AFAIK),它们不是毫秒敏感度。
有什么方法可以在多个设备上同时触发事件,或者应该遵循的方法吗?
最佳答案
不要通过 Internet 发送数据。您不能假设连接延迟足够低以满足您的需求。请改用蓝牙。您可以使用 GameKit、dns-sd 或像 HHServices 这样的库来完成。 .
选择一个将充当 Controller 的设备。 Apple 提供了使用 GameKit 执行此操作的示例代码,但想出自己的方法并不困难。当您想要触发操作时,该 Controller 将通过蓝牙向其他设备发送数据包。
我怀疑你需要比这更低的延迟,但如果你这样做,让 Controller 向每个连接的设备发送数据包以确定每个连接的延迟,让它们将时间戳发送到 Controller ,然后 Controller 应该能够计算同时发生的每个事件的时间戳。
关于iphone - 在多个 iOS 设备上同时触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16489899/