我有两部android手机,都连接到相同的wifi,都有蓝牙功能。
我想要一些方法,不知何故同步的手机和启动功能在同一时间在两个手机上。
例如,同时播放一首歌曲。
我已经尝试过蓝牙,但它有延迟,有时只有0.5秒。如果可能的话,我想要一些+- 0.01秒的东西。
有人建议将来用2-3秒播放,发送时间戳,但是如何同步设备的内部时钟呢?
发布于 2015-01-19 05:32:05
在调用该特定方法之前,请尝试测量两个设备之间的延迟:
1.第一个设备说Hi(存储当前时间)
2.第二个设备接收Hi。
3.第二个设备说back Hi!
4.第一个设备接收Hi。((storedTime- currentTime) /2)
现在你有了延迟,将你的请求发送到第二个设备来启动你的特定方法,并在延迟后的第一个设备上启动它。
尝试测量延迟5到10次,以获得更准确的结果。
发布于 2015-01-14 21:33:51
你有一种在设备之间传输数据的方法,对吧?如果是这样,你可以发送一个未来的时间戳,例如:如果现在的时间戳是1421242326,你发送1421242329或其他东西,并在那个时候在两个设备上启动功能。
发布于 2015-01-20 01:46:00
基本上使用@Dula的建议(设备1向设备2发送命令,并给出未来的“开始时间”)。然后,两个设备同时(在将来)启动该操作。
要确保设备同步,您可以使用基于服务器的时间同步(假设两个设备都可以访问Internet )。为此,每个设备联系相同的服务器(使用NTP或基于HTTP的NTP,或者联系已知的HTTP服务器,如www.google.com,并使用HTTP响应的"Date“头中的值)。将"server-date“与设备上的系统时钟进行比较,其差异是”与server-time的时间偏移“。时间偏移量可用于在"server- time“上进行同步,然后将其用作实际操作(播放媒体等)的时间基础。
https://stackoverflow.com/questions/27944019
复制相似问题