Here is the answer that finally worked for me, if anyone else has had this problem. It boild down to rounding up my currentTime.
-(NSString*)timeFormat:(float)value{
float minutes = floor(lroundf(value)/60);
float seconds = lroundf((value) - (minutes * 60));
int roundedSeconds = lroundf(seconds);
int roundedMinutes = lroundf(minutes);
NSString *time = [[NSString alloc]
initWithFormat:@"%d:%02d",
roundedMinutes, roundedSeconds];
return time;
- (void)updateTime:(NSTimer *)timer {
self.timeElapsed.text = [NSString stringWithFormat:@"%@",
[self timeFormat: ceilf(player.currentTime)]];
self.duration.text = [NSString stringWithFormat:@"-%@", [self timeFormat: (player.duration - ceilf(player.currentTime))]];
}