オーディオファイルの再生、再生/一時停止ボタンを使用AVAudioplayer
して再生と一時停止を切り替え、次々と同期します。次々にロードする合計10または11があります。NSTimer
audio player
view controllers
view controllers
最初に再生ボタンを押すと、 が起動し、に基づいてNSTimer
再生が開始され、View Controller が次々と読み込まれます。一時停止ボタンをもう一度押して再開すると、その時点のオーディオ ファイルからすべてが再開され、一時停止されたのと同じ時点から再開されます。しかし、同時に最初から次々と読み込みを開始するのも良くない。audio file
NSTimer
NSTimer
view controllers
view controllers
NSTimer
このステートメントでView Controllerをリロードしています
self.timer = [NSTimer scheduledTimerWithTimeInterval:11.0
target:self
selector:@selector(displayviewsAction:)
userInfo:nil
repeats:NO];
だから私の問題は、view controllers
一時停止ボタンをもう一度押して再生を再開するときに、最初からロードを停止する必要があることです。
-(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];
}
view controllers
一時停止ボタンをもう一度押して再生を再開したときに、最初から読み込みを停止する方法について誰か考えを教えてください。