是否可以从用户的 ipod 库中播放音频文件,并在播放器到达特定时间点时发生回调?我需要它非常准确,所以只需使用像 currentPlaybackTime
这样的方法可能还不够,因为 float 相等性不准确。我可以使用 A - B < Epsilon
float 检查,但是否有更好、更准确的方法来实现这一点?
最佳答案
如果您可以针对 iOS 4.0 或更高版本,请尝试使用 AVPlayer。然后你就可以使用
- (id)addBoundaryTimeObserverForTimes:(NSArray *)times queue:(dispatch_queue_t)queue usingBlock:(void (^)(void))block
它采用 CMTimes 的 NSValues 数组,并在每次达到边界时间之一时运行 block 的内容。 (注意一些行为,例如,如果您在 block 内暂停音频文件,回调将在您取消暂停时再次触发)。
由于 CMTime 不是 float ,我认为这比反复检查 currentTime 更准确。
关于iphone - 音频播放中特定时间回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7630478/