在音频播放期间的某些时候回叫

时间:2011-10-03 02:00:16

标签: iphone ios audio callback core-audio

是否可以播放用户ipod库中的音频文件,并在播放器到达某个时间点时进行回调?我需要它非常准确,所以简单地使用像currentPlaybackTime这样的方法可能是不够的,因为浮点相等是不准确的。我可以使用A - B < Epsilon浮动检查,但有更好,更准确的方法来实现这一点吗?

1 个答案:

答案 0 :(得分:2)

如果您可以定位iOS 4.0或hight,请尝试使用AVPlayer。然后你就可以使用

- (id)addBoundaryTimeObserverForTimes:(NSArray *)times queue:(dispatch_queue_t)queue usingBlock:(void (^)(void))block

为CMTimes获取NSValues数组,并在每次触发一个边界时间时运行块的内容。 (注意一些行为,如果你在块中暂停音频文件,当你取消它时,回调将再次激活)。

由于CMTime不是浮点数,我认为这比重复检查currentTime更准确。