2011-10-03 81 views
1

是否有可能从用户的iPod库播放音频文件并在播放器达到某个时间点时发生回叫?我需要它是非常准确的,所以简单地使用currentPlaybackTime这样的方法可能是不够的,因为float等于不准确。我可以使用A - B < Epsilon浮点检查,但有没有更好,更准确的方法来实现这一点?音频播放期间在特定时间回拨

回答

2

如果您可以定位iOS 4.0或更高版本,请尝试使用AVPlayer。然后,你将能够使用

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

这需要NSValues为CMTimes阵列,将每次运行的边界时代的一个撞块的内容。 (注意一些行为,如果你暂停块内的音频文件,当你取消暂停时,回调会再次触发)。

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

+0

辉煌,感谢您的快速回复。这看起来像我需要的方法。 – XSL