在swift / iOS中准确计时“点击”间隔[重复]

问题描述 投票:0回答:1

[新手问题,但在线搜索表明它并不像我预期的那么简单。使用iOS 13,Swift 5:我有一个Doubles数组,以秒为单位表示时间间隔。我想生成一系列声音(点击?),这些声音依次按这些间隔分开。我可以找到一些关于节拍器等相对较旧的主题:

Accurate timing in iOSAccurate (Music-grade) Timing of Audio Playback

这表明使用计时器的准确性不高。这些线程已经存在了十年,并且经常使用重复的时间间隔(与从数组中读取数据相比)。我应该在哪里看?计时器?日期? DispatchQueue.main.asyncAfter?

ios swift timer intervals
1个回答
-1
投票

我会使用NSTimerInterval。确保将重复设置为false并使用更新的时间值创建一个新实例。

这里是一个例子:

var startTime: NSTimeInterval

//Sart the timer
startTime = NSDate.timeIntervalSinceReferenceDate()
NSTimer.scheduledTimerWithTimeInterval(0.02, 
  target: self, 
  selector: Selector("advanceTimer:"), 
  userInfo: nil,
  repeats: true)


//And your  timer method...
func advanceTimer(timer: NSTimer)
{
  //Total time since timer started, in seconds
  self.time = NSDate.timeIntervalSinceReferenceDate() - startTime
  //The rest of your code goes here
 }
© www.soinside.com 2019 - 2024. All rights reserved.