AVPlayer currentTime-Update für einen UISlider beim Laden von ViewController

Ich spiele Songs inAVPlayer. Ich habe einen separaten Ansichts-Controller für meinen Media Player und die Initialisierung erstellt. Alle Methoden, die ich für den Player verwende (Wiedergabe, Pause, Wiederholung, Zufallswiedergabe), befinden sich im selben Ansichts-Controller.

Ich aktualisiere einen Slider wie diesen:

[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;
}

Sobald ich den Viewcontroller verlasse und wieder komme, wird der Song abgespielt, aber das Problem ist, dass der Schieberegler nicht aktualisiert wird. Also habe ich eine Singleton-Klasse erstellt, um die Details des gerade spielenden Songs zuzuweisen. Auch innerhalb des Slider-Updates habe ich zugeteiltplayerCurrentTime (slidercurrent value) für eine Singleton-Klassenvariable. Und meinviewdidload Methode, die ich so zugewiesen habe:

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];
}

Der Schieberegler wird jedoch nicht aktualisiert. Warum ist das so und wie kann ich dieses Problem lösen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage