2013-02-08 75 views
1

当重复按钮第一次被击中时,它应该运行无限次,当它第二次被击中时,它不应该重复音频,而应该停止循环。 。下面是它第一次很好的代码,但是当它再次被按下时,它不会停止循环。音频的循环次数

BOOL isFirstTime; 

@interface English : UIViewController <UITextViewDelegate, ADBannerViewDelegate, UIScrollViewDelegate, 

-(void) RepeatAction:(id)sender{ 

if(isFirstTime == YES){ 

    player.numberOfLoops = -1; 


} else { 

    player.numberOfLoops = 0; 
} 

} 

- (void)playAction:(id)sender 
{ 
    if([player isPlaying]) 
    { 
     [sender setImage:[UIImage imageNamed:@"1play.png"] forState:UIControlStateSelected]; 
     [player pause]; 

    }else{ 
     [sender setImage:[UIImage imageNamed:@"audiopause.png"] forState:UIControlStateNormal]; 
     [player play]; 
     slidertimer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(updateProgressBar:) userInfo:nil repeats:YES]; 

     [[NSRunLoop mainRunLoop] addTimer:slidertimer forMode:NSRunLoopCommonModes]; 
     timer = slidertimer; 


    }} 

感谢您的帮助。

+0

告诉我们你在哪里设置布尔值,然后运行循环。 – Max 2013-02-08 14:27:48

+0

在h文件中定义Bool,并在m文件中设置viewdidload isFirstTime = YES; – user1452248 2013-02-08 14:30:37

+1

我没有看到您将isFirstTime设置为NO的任何点。所以当然你的循环将继续运行。 – Max 2013-02-08 14:35:02

回答

1
-(void) RepeatAction:(id)sender{ 
    if(isFirstTime){ // even here you need not to compare with == YES 
     player.numberOfLoops = -1; 
     isFirstTime = NO; 
    } else { 
     player.numberOfLoops = 0; 
     isFirstTime = YES; 
    } 
} 
+0

非常感谢。有用。 – user1452248 2013-02-08 14:41:09