AVPlayer currentTime обновление для UISlider при загрузке ViewController
Я играю песни вAVPlayer
, Я создал отдельный контроллер представления для своего медиапроигрывателя и инициализации, и все методы, которые я использую для проигрывателя (воспроизведение, пауза, повтор, перемешивание), присутствуют в одном контроллере представления.
Я обновляю слайдер так:
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(sliderUpdate:) userInfo:nil repeats:YES];`
- (void) sliderUpdate:(id) sender{
int currentTime = (int)((song.player.currentTime.value)/song.player.currentTime.timescale);
slider.value=currentTime;
NSLog(@"%i",currentTime);
song.currentTime=currentTime;
int currentPoint=(int)((song.player.currentTime.value)/song.player.currentTime.timescale);
int pointMins=(int)(currentPoint/60);
int pointSec=(int)(currentPoint%60);
NSString *strMinlabel=[NSString stringWithFormat:@"%02d:%02d",pointMins,pointSec];
lblSlidermin.text=strMinlabel;
song.strslidermin=strMinlabel;
}
Когда я выхожу из контроллера и когда снова приходит, песня играет, но проблема в том, что слайдер не обновляется. Поэтому я создал одноэлементный класс, чтобы назначить детали воспроизводимой в данный момент песни. Также внутри обновления ползунка я назначилplayerCurrentTime
(значение ползунка тока) для одноэлементной переменной класса. И мойviewdidload
Метод, который я назначил так:
if (song.isPlaying==NO) {
[self prePlaySong];
}else{
lblAlbum.text=song.currentAlbum;
lblArtist.text=song.currentArtist;
lblSong.text=song.currentSong;
slider.value=song.currentTime;
slider.maximumValue=song.sliderMax;
slider.minimumValue=song.sliderMin;
imgSong.image=song.songImage;
[btnMiddle setBackgroundImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateNormal];
}
но слайдер не обновляется. Почему так и как я могу решить эту проблему?