iPhone - 同步两部iPhone,让它们同时启动任务

时间:2012-03-14 10:19:22

标签: iphone ios

我需要制作一个应用程序,它将同时开始在两个(或更多)iPhone上播放相同的媒体,问题是它必须是完美的,没有第二次延迟等等。 iPhone是否有可能在每台设备上都有一个完美(或接近完美)的通用时间戳。或者我可能还有其他选择吗?

4 个答案:

答案 0 :(得分:1)

2条规则:

  1. 找到一种在每台设备上拥有相同时间的方法
  2. 使用" startAtTime"功能使用这个共享的统一时间。不,#start; startNow"功能
  3. iPhone应该能够使用远程服务器同步他们的日期和时间,如果这不够准确(谁知道),实现这一点的方法(假设你已经能够在他们之间进行通信):

    • 主人将时间发送给奴隶10次(或更多次)。
    • 每次从属设备将其时间与收到的时间进行比较并进行增量
    • 经过10次尝试后,统一增量并使用此均值来相应地调整从属时间

答案 1 :(得分:0)

如果他们在相同的时区和同一时间设置,你可以安排它使用NSTimer的

在特定的时间点启动你的功能

- (id)initWithFireDate:(NSDate *)date interval:(NSTimeInterval)ti target:(id)t selector:(SEL)s userInfo:(id)ui repeats:(BOOL)rep;

答案 2 :(得分:0)

您拥有的一个选项是从公共服务器访问时间,然后相应地在两个设备上启动计时器(根据您从服务中获得的时间计算),这样您就可以在两个设备上有准确的时间然后播放它......

即使这有一个问题,因为互联网速度可能会有所不同,并且两台设备中的一台设备在收到服务器响应时可能会有一点延迟,与其他设备相比,并且根据您的要求,他们可能会退出同步一毫秒左右,这将是可见的..:/任何其他想法任何人..?

答案 3 :(得分:0)

没有内部时钟与系统时钟不同 - 所以这意味着每个设备可能具有完全不同的时间设置(实际上,即使只有一秒或者它们,它们很可能会有不同的时间设置。二)。

使用网络/互联网连接与中央时间服务器同步可能是一种可以采取的方法,但这需要网络/互联网连接,您必须设置时钟考虑连接滞后往/来自时间服务器。

您可能必须拥有某种本地同步系统。如果它们非常接近,一种方法可能是在您的应用程序中的设备之间创建ad-hoc蓝牙连接,然后在您的应用程序中使用一些同步代码以使内部计时器相同。例如,您可以将第一个应用程序启动为“控制器”,然后所有其他应用程序将寻找此控制器并与其同步。同步可能只是控制器发出时间戳消息,其他设备可以获取并设置内部计数器以匹配。

在不了解更多关于要求的情况下,很难说如何最好地解决这个问题,因为运行应用程序和发出声音之间的时间可能存在限制,或者如果您必须有触发信号,或者如果有就在时间x他们需要发出声音。