I attemped using the addPeriodicTimeObserver method to AVPlayer instead of an NSTimer and still finding clock drift.
From what I can gather, it's looking like CMAudioClock is the way to go here. But I'm finding the developer page a little unclear.
Can anyone here point me toward a good resource for understanding Core Media integration with AV Foundation (that covers sync)?
In what thread are you requesting timer callbacks? What do you mean by "clock drift"?
In general, in the main UI runloop thread, timer callback resolution is usually no better than roughly the display frame rate, 60 Hz, or every 16.667 mS. For better 60 Hz timing, try the CADisplayLink API. For higher timer resolution, you might want to use a gcd timer instead of an NSTimer, dispatch your timer callbacks to a dedicated thread or operation queue, perhaps request each next callback for a slightly shorter time interval than the desired interval, followed by a polling spin-wait until the media time increments to the needed time value for your trigger.