目前,应用程序包含此项 - 使用UIDatePicker
设置触发时间,然后当此设置NSDate
出现时,播放.mov文件。我最近尝试在4种不同的iOS设备上运行该应用程序并获得了非常可怕的结果。似乎每个设备都只是略微不同步,导致音乐听起来很尴尬。但是,我偶尔会在iPhone 6S和6S +之间进行试验,几乎完全同步。要在特定时间运行代码,我使用以下代码。
let now = NSDate()
let timeDelta = self.appDelegate.triggerDate.timeIntervalSinceDate(now)
let timeDeltaDouble = Double(timeDelta)
print(timeDeltaDouble)
self.delay(timeDeltaDouble) {
self.player.play()
}
延迟的地方
func delay(delay:Double, closure:()->()) {
dispatch_after(
dispatch_time(
DISPATCH_TIME_NOW,
Int64(delay * Double(NSEC_PER_SEC))
),
dispatch_get_main_queue(), closure)
}
考虑到我的结果不是很有希望,我假设有更好的方法来实现这种效果。希望了解更好的方法来实现这一目标!为什么这种方法没有成功。
编辑:此外,我确保当UIDatePicker
返回日期为秒的日期设置为0时,以保持统一。