I have a simple mp3 playing through AVAudioPlayer and I want to be able to display how much time is left.
I know the answer includes subtracting AVAudioPlayer.duration
from AVAudioPlayer.currentTime
but I don't know how to implement a function which calculates it while it's playing (like an onEnterFrame in Actionscript I guess). At present currentTime
is static, i.e. zero.
I would go for an NSTimer. Schedule it to run every second while the media is played and so you can keep your UI updated with the time left.
// Place this where you start to play
NSTimer * myTimer = [NSTimer scheduledTimerWithTimeInterval:1.0
target:self
selector:@selector(updateTimeLeft)
userInfo:nil
repeats:YES];
And create the method to update you UI:
- (void)updateTimeLeft {
NSTimeInterval timeLeft = self.player.duration - self.player.currentTime;
// update your UI with timeLeft
self.timeLeftLabel.text = [NSString stringWithFormat:@"%f seconds left", timeLeft];
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With