I have some animation which needs to appear on screen at very specific timings, these are stored in SQLite database. What I am planning to do is use nstimer to keep time and pop the animation when the specific time is reached.
Im thinking of using an NSTimer to count for the duration of the sound file and animation then when certain points are reached pop an on screen animation. The problem is the set timing are like this 55.715000 seconds so are very accurate and these need to sync with an audio track that will be played with the animation.
Firstly is this even possible, secondly how can i compare such specific timings the problem i seem to be facing is the code can’t run quick enough and the time jumps more than .001 of a second.
I have no knowledge of openGLES or Cocos2d and learning these is not really feasible for the time scales.
Regardless of how accurate your timings are, you aren’t going to get the device to display more frequently than about 60Hz (16.7 ms per frame). As I see it, you have at least two options here:
1) Use a
CADisplayLinkcallback to check the playback progress of the audio and trigger each animation as it becomes timely.Display link timers are created in a similar way to regular
NSTimers:2) Create a collection of animations, setting their respective
beginTimeproperties to the appropriate trigger time (or, if using implicit or block-based animations, use thedelayparameter).