Wenn Sie die Pausentaste erneut drücken, wird der Ladevorgang der View-Controller fortgesetzt
ich benutzeAVAudioplayer
zuAudio-Dateien abspielen, Play / Pause-Taste zum Umschalten zwischen Wiedergabe und Pause undNSTimer
mitaudio player
zu synchronisierenview controllers
einer nach demanderen. Ich habe insgesamt 10 oder 11view controllers
nacheinander laden.
Wenn die Wiedergabetaste beim ersten Start gedrückt wirdNSTimer
, fängt an zu spielenaudio file
und basiert aufNSTimer
, View-Controller werden nacheinander geladen. Wenn die Pause-Taste erneut gedrückt wird, um fortzufahren, wird alles von dieser Punkt-Audiodatei fortgesetzt.NSTimer
undview controllers
von dem Punkt an, an dem es angehalten wurde, was gut ist. Gleichzeitig beginnt das Laden derview controllers
wieder nacheinander von anfang an nachNSTimer
was nicht gut ist.
View Controller werden mit dieser Anweisung neu geladen
self.timer = [NSTimer scheduledTimerWithTimeInterval:11.0
target:self
selector:@selector(displayviewsAction:)
userInfo:nil
repeats:NO];
Mein Problem ist also, dass ich das Laden von stoppen mussview controllers
erneut von Anfang an, wenn die Pause-Taste erneut gedrückt wird, um die Wiedergabe fortzusetzen.
-(void)playpauseAction:(id)sender
{
if ([audioPlayer isPlaying]) {
[sender setImage:[UIImage imageNamed:@"Play Icon.png"] forState:UIControlStateSelected];
[audioPlayer pause];
[self pauseTimer];
} else {
[sender setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateNormal];
[audioPlayer play];
[self resumeTimer];
self.timer = [NSTimer scheduledTimerWithTimeInterval:11.0
target:self
selector:@selector(displayviewsAction:)
userInfo:nil
repeats:NO];
}
}
-(void)pauseTimer{
pauseStart = [[NSDate dateWithTimeIntervalSinceNow:0] retain];
previousFireDate = [[timer fireDate] retain];
[timer setFireDate:[NSDate distantFuture]];
}
-(void)resumeTimer{
float pauseTime = -1*[pauseStart timeIntervalSinceNow];
[timer setFireDate:[previousFireDate initWithTimeInterval:pauseTime sinceDate:previousFireDate]];
[pauseStart release];
[previousFireDate release];
}
- (void)displayviewsAction:(id)sender
{
First *firstController = [[First alloc] init];
firstController.view.frame = CGRectMake(0, 0, 320, 480);
CATransition *transitionAnimation = [CATransition animation];
[transitionAnimation setDuration:1];
[transitionAnimation setType:kCATransitionFade];
[transitionAnimation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]];
[self.view.layer addAnimation:transitionAnimation forKey:kCATransitionFade];
[self.view addSubview:firstController.view];
[self.view addSubview:toolbar];
[firstController release];
self.timer = [NSTimer scheduledTimerWithTimeInterval:23 target:self selector:@selector(Second) userInfo:nil repeats:NO];
}
Kann mir jemand eine Idee geben, wie man das Laden von stopptview controllers
erneut von Anfang an, wenn die Pause-Taste erneut gedrückt wird, um die Wiedergabe fortzusetzen.