Swift:AVAudioPlayer的addPeriodicTimeObserverForInterval

时间:2015-07-18 12:53:38

标签: ios xcode swift avaudioplayer avplayer

我仍然试图找到一种方法,当AVAudioPlayer音乐文件达到特定秒数时,您可以调用操作。

我知道我可以使用addPeriodicTimeObserverForInterval类中的AVPlayer方法,但我不想使用AVPlayer,因为它不使用playing()等方法, stop()numberOfLoops等因为我正在使用它们

是否有AVAudioPlayer使用的替代方法?如果是这样,当AVAudioPlayer进入20秒时,我该怎么做呢。

1 个答案:

答案 0 :(得分:1)

我认为您的选择是切换到使用AVPlayer,或者#34;伪造它"正如Ashish,上面或其他方法所建议的那样使用NSTimer

NSTimers的准确度超过1/50秒(它们在主线程上运行,只有当您的应用访问运行循环时才会触发。)

您可以尝试注册currentTime AVAudioPlayer属性的KVO通知,然后检测特定秒内的时间。

KVO通知可能会占用大量CPU资源,甚至可能导致音频播放断断续续,因为每次音频播放器更改currentTime属性时KVO通知都会触发,即使它已经过了每1/1000秒。

如果您只需要在一秒钟内完成解决,并且不一定要精确,那么NSTimer就是您的选择。