Iphone 游戏套件同步

Iphone 游戏套件同步,iphone,ios,xcode,synchronization,gamekit,Iphone,Ios,Xcode,Synchronization,Gamekit,我试图实现GameKit,通过蓝牙/wifi在多台设备上同步播放歌曲。但我总是有0.1-0.5秒的延迟。我认为这样的同步是微不足道的。我找到了BM接收器节拍器,它实现了我想要的,声音是真正同步播放的 我正在使用GKSendDataReliable并有节奏地发送一个小数据包。使用本教程完成所有操作 我在谷歌上搜索了很多,但找不到答案和/或我的瓶颈。如有任何建议/方法,将不胜感激。也许有一些教程?你用了多少台设备?我假设这是服务器-客户机方案。以下是我将要做的(可能不起作用,但您正在征求建议/方法)

我试图实现
GameKit
,通过蓝牙/wifi在多台设备上同步播放歌曲。但我总是有0.1-0.5秒的延迟。我认为这样的同步是微不足道的。我找到了BM接收器节拍器,它实现了我想要的,声音是真正同步播放的

我正在使用
GKSendDataReliable
并有节奏地发送一个小数据包。使用本教程完成所有操作


我在谷歌上搜索了很多,但找不到答案和/或我的瓶颈。如有任何建议/方法,将不胜感激。也许有一些教程?

你用了多少台设备?我假设这是服务器-客户机方案。以下是我将要做的(可能不起作用,但您正在征求建议/方法),非常粗略的算法:

-服务器设置一个计时器,并使用PING数据包将其值发送给客户端,每个客户端记住它

-客户端接收PING数据包,并发送响应数据包

-服务器获取响应数据包,检查时间并将结果增量存储在某个位置(向量中)

-服务器发送更多的PING数据包并获取更多的时间增量

-当服务器有足够的数据时,它计算平均ping时间(CLIENTX_时间)并选择最大的一个(最大_时间)

-服务器向所有客户端发送开始数据包,数据包中有一些附加信息,表示在XX_时间开始播放

-服务器在最长时间后开始播放音乐

-客户端在XX时间后获得开始数据包并开始播放音乐,其中XX是按每个播放器计算的(因此对于最慢的客户端,它将是0,对于其他客户端,它将是最大的\u time-CLIENTX\u时间)

-这个过程一次又一次地持续着,每次你想玩的时候,你都要提前做

问题是,您永远无法始终同步所有内容-不幸的是,这是网络的本质;)