iphone - 音频播放中特定时间回调

标签 iphone ios audio callback core-audio

是否可以从用户的 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/

相关文章:

iphone - 从plist创建NSArray

iphone - 如何将动态大小的标签始终放置在特定宽度 View 的中心?

iphone - for 循环中的 sleep 时间

ios - UIAlertView subview 定位

ios - 如何在每个 uicollectionviewcell 中解析不同的字典数组。?

iphone - 在 cellForRowAtIndexPath 中最好使用 if 语句还是 switch 语句? - UITableView

objective-c - Objective-C中的私有(private)方法

html - iOS HTML5 音频控件未显示

jquery - 如果需要播放其他音频,如何停止音频

ios - 在 SpriteKit Swift 3 中停止/暂停设置为永远重复的声音