我正在试图找到一种方法来同步2+移动Android设备上的节奏播放。
在WiFi / LAN上实现良好的精确度很简单(非常低的延迟)但我需要一个很好的解决方案,用于具有可变高延迟的3G网络。
我想出的一个想法是发送和计时消息,并使用平均时间跨度来弥补延迟,但这个想法似乎很荒谬,我确信有更好的其他方法可以解决这个问题。
关心帮助?
答案 0 :(得分:1)
我首先尝试在所有可用作参考的设备上创建尽可能接近的同步时钟。
当设备进行通信时,它们总是在消息中包含本地同步时间,这样您就可以随时找出收到消息的时间与发送消息的时间之间的区别,并且始终知道消息指出的时间应该是在所有设备上播放节拍都是一样的。
这里真正的困难是同步手表......我首先阅读这篇文章http://en.wikipedia.org/wiki/Network_Time_Protocol
这里有一个基于JAVA的NTP客户端: http://commons.apache.org/net/examples/ntp/NTPClient.java
如果你能够解决这个问题,全世界都有很多NTP服务器。 http://www.pool.ntp.org/en/use.html
答案 1 :(得分:0)
我实际上最近试图自己解决同样的问题。我发现的最佳解决方案是NTP(网络时间协议)。
主要缺点是在高延迟网络上同步需要很长时间。因此,在需要同步设备之前,您需要运行一段时间才能运行的应用程序。
我正在处理的应用程序还没有完美的时间测试,所以我不能保证这是一个可行的解决方案。但值得一试。
答案 2 :(得分:0)
如果您的设备足够接近,您可以看到是否能够使用蓝牙来加速点对点同步,同时使用NTP来获取全球时间 - 可能是通过添加蓝牙连接的手机您的NTP配置中的遥控器。这将需要配对最终用户设备,这可能是一个问题。