我需要制作一个应用程序,它将同时开始在两个(或更多)iPhone上播放相同的媒体,问题是它必须是完美的,没有第二次延迟等等。 iPhone是否有可能在每台设备上都有一个完美(或接近完美)的通用时间戳。或者我可能还有其他选择吗?
答案 0 :(得分:1)
2条规则:
iPhone应该能够使用远程服务器同步他们的日期和时间,如果这不够准确(谁知道),实现这一点的方法(假设你已经能够在他们之间进行通信):
答案 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他们需要发出声音。