开发者

Callback at certain times during audio playback

开发者 https://www.devze.com 2023-04-09 21:14 出处:网络
Is it possible to play an audio file from the user\'s ipod library and have a callback occur开发者_开发百科 whenever the player reaches a certain time point ? I need it to be very accurate, so simply

Is it possible to play an audio file from the user's ipod library and have a callback occur开发者_开发百科 whenever the player reaches a certain time point ? I need it to be very accurate, so simply using methods like currentPlaybackTime might not be enough because float equality is inaccurate. I could use the A - B < Epsilon float check, but is there a better, more accurate way of achieving this?


If you can target iOS 4.0 or hight, try using AVPlayer. Then you will be able to use

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

which takes an array of NSValues for CMTimes and will run the contents of the block each time one of the boundary times is hit. (Beware of some behavior like, if you pause the audio file inside of the block, the callback will fire again when you unpause it).

Since CMTime is not a float, I think this will be more accurate than checking for the currentTime repeatedly.

0

精彩评论

暂无评论...
验证码 换一张
取 消