首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GameKit同步

GameKit同步
EN

Stack Overflow用户
提问于 2012-10-19 21:40:42
回答 1查看 433关注 0票数 0

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

我正在使用GKSendDataReliable,有节奏地发送一个小数据包。使用本教程here完成了所有的工作。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-25 21:59:55

你使用了多少种设备?我假设它是服务器-客户端方案。这是我会做的(它可能不起作用,但你正在寻求建议/方法),非常粗略的算法:

-server设置一个计时器,并使用PING包将其值发送到客户端,并记住每个客户端

-client收到PING报文,并发送应答报文

-server获取响应数据包,检查时间并将结果增量存储在某个地方(以向量形式)

-server发送更多的PING数据包并获得更多的时间增量

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

-server向所有客户端发送启动数据包,数据包中有一些附加信息,上面写着在XX_TIME中开始播放

BIGGEST_TIME之后,-server开始播放音乐

-clients获取开始包并在XX时间之后开始播放音乐,其中XX是按播放器计算的(因此,对于最慢的客户端,它将是0,对于其他客户端,它将是BIGGEST_ time -CLIENTX_TIME)

-this过程一遍又一遍地继续,每次你想玩什么东西的时候,你都要提前完成

问题是,你永远不可能让所有的东西都同步--不幸的是,这是网络的本质;)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12975539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档