我正在使用periodicTimeObserverForInterval来更新绘图以反映我当前的音频波形。这很好用,一直给我带来麻烦。它与暂停和启动保持同步。但是,当我试图在我的代码中引入任意搜索时,波形视觉与播放音频不同步。除非在调用搜索功能后发送给我的观察者的时间错误,否则这对我没有意义。
// timeScale = 22050 = sampleRate
let timeScale = self.player.currentItem.asset.duration.timescale;
self.player.seekToTime(CMTimeMakeWithSeconds(Float64(time), timeScale), toleranceBefore: kCMTimeZero, toleranceAfter: kCMTimeZero, completionHandler: {
(Bool) -> Void in
self.player.play();
});
我无法弄清楚为什么这个功能会导致视觉效果不同步。