オーディオが再生されている間、私は、スライダーの値を更新するNSTimerを使用しています。
if (sliderUpdateTimer) {
[sliderUpdateTimer invalidate];
sliderUpdateTimer=nil;
}
sliderUpdateTimer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(updateSliderForAudio) userInfo:nil repeats:YES];
オーディオの再生が終了すると、私はaudioPlayerデリゲートメソッドのタイマーを無効にしています。
-(void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag{
NSLog(@"audioPlayerDidFinishPlaying");
[player release];
audioPlayer=nil;
[sliderUpdateTimer invalidate];
[sliderUpdateTimer release];
sliderUpdateTimer=nil;
}
デリゲートメソッドが呼び出さなっているが、タイマーが停止されていません....私はタイマーをruningていた上で、私は一度だけスレッドいます。しかし、まだタイマーは止まらない....この点に関する助けが歓迎されている...
をループし、何かがなければなりませんそれ以外は間違っている何を見ていますか?関数 'updateSliderForAudio'はまだ呼び出されていますか?どのように伝えることができますか?アプリがクラッシュしていますか? –
どのメソッドに 'if(sliderUpdateTimer){...'コード??? –
アプリがクラッシュすることはありません。しかし、updateSliderForAudioは、タイマーが無効化された後も継続的に呼び出されています。メソッドのlogステートメントはメソッドを無効化した後でも呼び出されています –