Приложение является музыкальным проигрывателем, и мне нужно показать trackTimeLabel
, который обновляет продолжительность воспроизведения во время песни.Обновить метку времени песни
Итак, обновляйте этикетку каждую секунду с продолжительностью воспроизведения дорожки воспроизведения.
Прямо сейчас я делаю хак, где я просто подсчитывая секунды, которые не имеют ничего общего с песней, но это не является хорошим решением:
- (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, имеет MPMediaItem
класс, который я могу получите MPMediaItemPropertyPlaybackDuration
для трека, но я ничего не могу с этим поделать.
Вы пытаетесь получить реальное чтение в реальном времени того, сколько времени осталось или осталось во время воспроизведения трека? –
@CraigSmith yup точно, извините, если я не объяснил это достаточно хорошо, но вы его получили. Есть идеи? – SRMR