Die App ist ein Musik-Player, und ich muss eine trackTimeLabel
zeigen, die die Wiedergabedauer während des Songs aktualisiert.Update Song Zeitlabel
Aktualisieren Sie das Label also jede Sekunde mit der Wiedergabespurdauer.
Im Moment mache ich einen Hack, wo ich nur Sekunden zählte, die nichts mit dem Lied zu tun hat, aber das ist keine gute Lösung:
- (void)viewWillAppear:(BOOL)animated {
currentItem = [musicPlayer nowPlayingItem];
_titleLabel.text = [self currentItemValue:MPMediaItemPropertyTitle];
NSTimer *timer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(timerDidTick:) userInfo:nil repeats:YES];
[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
}
-(void) timerDidTick:(NSTimer*) theTimer{
long currentPlaybackTime = musicPlayer.currentPlaybackTime;
int currentHours = (int)(currentPlaybackTime/3600);
int currentMinutes = (int)((currentPlaybackTime/60) - currentHours*60); // Whole minutes
int currentSeconds = (currentPlaybackTime % 60);
_trackTimeLabel.text = [NSString stringWithFormat:@"%i:%02d:%02d", currentHours, currentMinutes, currentSeconds];
}
Apple hat eine MPMediaItem
Klasse, die ich kann, Holen Sie sich eine MPMediaItemPropertyPlaybackDuration
für den Track, aber ich kann nicht scheinen, etwas damit zu arbeiten.
Sie versuchen, eine tatsächliche Echtzeit-Lesung zu erhalten, wie viel Zeit entweder bleibt oder während einer Track-Wiedergabe verstrichen ist? –
@CraigSmith genau, sorry, wenn ich das nicht gut genug erklärt habe, aber du hast es verstanden. Irgendwelche Ideen? – SRMR