我正在尝试为我的大学项目构建一个节拍器应用程序。在这个应用程序中,我必须在同一时间在不同的Android手机中启动计时器,当计时器完成时我正在播放预先下载的歌曲。我解决这个问题的方法是我使用Parse.com向设备发送推送通知。在那次推送中,我发送一个持续时间,之后每个设备都将开始倒计时。
现在问题是发送和接收推送的延迟。发送推送的持续时间和每个设备接收推送的时间差异非常小。每个设备的延迟都不相同。因此,每台设备上播放的音频并不完全同步。
迄今为止我所做的一小demo。
如果您看到视频,则在计时器结束时您必须听到两声敲击声。这是因为推送中的延迟不一致。
有人可以建议我在每台设备上获得更准确的同步吗?
答案 0 :(得分:1)
完美地对节拍器进行定时将很困难,因为声音很慢,如果设备距离几英尺,它将完全关闭。作为测试,你可以采取两个同步滴答钟或节拍器,并将它们分开4英尺,你会听到差异。
你试过把它绑在时钟上吗?比如,在新的一秒开始之后它是否能够启动节拍器?
看看System.nanoTime()
:
https://developer.android.com/reference/java/lang/System.html#nanoTime()
这听起来像是一个很酷的项目。