我有两台 iOS 设备,并且都有相同视频的副本。两台设备都通过蓝牙进行通信。视频仅在一个设备上播放,而另一个是遥控器。“远程控制”设备需要一个显示视频在持续时间中的位置的擦洗器。
使洗涤器与视频播放保持同步的最佳方法是什么?
我使用 AVPlayer 播放视频,使用 Gamekit 进行蓝牙连接。
呵呵,好吧,开始工作会很有趣。延迟是你总会得到的东西,所以你需要一些缓解策略。我建议看看人们处理滞后的某些方式。我可以建议的一件事是将您的两种消息类型分为关键和非关键。例如,停止/暂停/播放/重启命令对我来说很重要。您希望该消息通过,并且您将继续尝试直到它通过。
诸如在两个方向(玩家到遥控器,遥控器到玩家)上改变擦洗器位置的消息是非关键的。您正在发送它们,但您不应该浪费时间来确认响应或确保它们已送达。有点类似于UDP和TCP之间的区别。这些只会通过连接发送,我基本上不会让包比(scrubberposition,position_as_time,identifier_number)更复杂。记录您获得的最后一个标识符号(标识符号是一个单调递增的数字)并丢弃任何低于此数字的消息,并更新到任何更高数字的位置,并更新您存储的 identifier_number。
我希望这有意义/有帮助,如果我需要进一步解释,请告诉我,祝你好运