Ios 当玩家到达指定时间时如何得到通知

Ios 当玩家到达指定时间时如何得到通知,ios,audiokit,Ios,Audiokit,我需要检测在AKPlayer中何时达到特定的时间戳。当达到该点时,我将播放头向后移动,以重复歌曲的一部分,以支持应用程序中的鞋面功能 我目前的方法是使用每毫秒触发一次的计时器来检查播放器.currentTime是否达到或超过了特定时间。我看到的问题是currentTime的变化速度不够快,无法检测到这一点-它似乎每11毫秒更新一次,这对于我的用例来说不够精确。音频在我捕获之前超过了时间戳。在这里,你可以看到值并不会在每次定时器启动时改变,当它改变时,它的差值为11.6毫秒,因此如果我需要知道播放

我需要检测在
AKPlayer
中何时达到特定的时间戳。当达到该点时,我将播放头向后移动,以重复歌曲的一部分,以支持应用程序中的鞋面功能

我目前的方法是使用每毫秒触发一次的
计时器来检查
播放器.currentTime
是否达到或超过了特定时间。我看到的问题是
currentTime
的变化速度不够快,无法检测到这一点-它似乎每11毫秒更新一次,这对于我的用例来说不够精确。音频在我捕获之前超过了时间戳。在这里,你可以看到值并不会在每次定时器启动时改变,当它改变时,它的差值为11.6毫秒,因此如果我需要知道播放器何时达到0.5125秒,我不会检测到,直到播放器在这段时间内运行了约10毫秒

0.5108390022675737
0.5108390022675737
0.5108390022675737
0.5108390022675737
0.5108390022675737
0.5108390022675737
0.5108390022675737
0.5108390022675737
0.5108390022675737
0.5108390022675737
0.5108390022675737
0.5108390022675737
0.5224489795918368
0.5224489795918368
0.5224489795918368
0.5224489795918368
0.5224489795918368
0.5224489795918368
0.5224489795918368
0.5224489795918368
0.5224489795918368
0.5224489795918368
0.5224489795918368
我探索的另一个选项是尝试使用KVO观察
currentTime
,但不幸的是,它从未被调用

currentTimeObserver = player.observe(\.currentTime) { (player, change) in
    print("Changed to \(player.currentTime)")
}

有没有办法更精确地跟踪
currentTime
或在到达特定时间戳时注册以获得通知?

是否将
currentTimeObserver
保存在属性中?或任何其他“长寿命物体”?因为如果它只是函数中的一个临时对象,它将随着作用域本身的移除而被移除