ponownie naciśnij przycisk pauzy, aby wznowić przeładowywanie kontrolerów widoku
ja używamAVAudioplayer
doodtwarzaj pliki audio, Przycisk odtwarzania / pauzy, aby przełączać między odtwarzaniem i pauzą iNSTimer
zaudio player
synchronizowaćview controllers
jeden po drugim. Mam w sumie 10 lub 11view controllers
ładować jeden po drugim.
Po naciśnięciu przycisku odtwarzania po raz pierwszy uruchamia sięNSTimer
, zaczyna graćaudio file
i na podstawieNSTimer
, kontrolery widoku będą ładowane jeden po drugim. Po ponownym naciśnięciu przycisku pauzy, aby wznowić, wznawia wszystko z tego pliku audio punktu,NSTimer
iview controllers
z tego samego miejsca, w którym zostało zatrzymane, co jest dobre. Jednak w tym samym czasie rozpoczyna ładowanieview controllers
ponownie jeden po drugim od początku na podstawieNSTimer
co nie jest dobre.
Przeładowuje kontrolery widoku za pomocą tej instrukcji
self.timer = [NSTimer scheduledTimerWithTimeInterval:11.0
target:self
selector:@selector(displayviewsAction:)
userInfo:nil
repeats:NO];
Więc mój problem polega na tym, że muszę zatrzymać ładowanieview controllers
ponownie od początku po ponownym naciśnięciu przycisku pauzy, aby wznowić odtwarzanie.
-(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];
}
Czy ktoś może zorientować się, jak zatrzymać ładowanieview controllers
ponownie od początku po ponownym naciśnięciu przycisku pauzy, aby wznowić odtwarzanie.