我想同时(以毫秒为单位)在多个 iOS 设备上触发一个事件(例如播放音乐)
我的方法是保持套接字连接并向 iOS 设备发送时间戳(从当前时间 10 秒后)并在该时间戳处触发 iOS 设备上的事件。
问题是 iOS 设备可能相差 1 或 2 秒,这会导致不同步。甚至时间戳在每个设备上都指出相同的时间(AFAIK),它们不是毫秒灵敏度。
有没有办法在多个设备上同时触发一个事件,或者应该遵循的方法?
我想同时(以毫秒为单位)在多个 iOS 设备上触发一个事件(例如播放音乐)
我的方法是保持套接字连接并向 iOS 设备发送时间戳(从当前时间 10 秒后)并在该时间戳处触发 iOS 设备上的事件。
问题是 iOS 设备可能相差 1 或 2 秒,这会导致不同步。甚至时间戳在每个设备上都指出相同的时间(AFAIK),它们不是毫秒灵敏度。
有没有办法在多个设备上同时触发一个事件,或者应该遵循的方法?
不要通过 Internet 发送数据。您不能假设连接延迟足够低以满足您的需求。请改用蓝牙。您可以使用 GameKit、dns-sd 或HHServices 之类的库。
选择将充当控制器的设备。Apple 提供了使用 GameKit 执行此操作的示例代码,但想出自己的方法并不难。当您想要触发操作时,该控制器将通过蓝牙向其他设备发送数据包。
我怀疑你需要比这更低的延迟,但如果你这样做,让控制器向每个连接的设备发送数据包以确定每个连接的延迟,让它们将时间戳发送到控制器,然后控制器应该能够计算时间戳对于将同时发生的每一个。