如何在加载多个viewcontroller时检查audioplayer是否暂停

时间:2012-03-17 20:38:37

标签: iphone

playpauseAction方法执行中,它将播放音频文件以及加载多个viewcontrollers

-(void)playpauseAction:(id)sender 
{

 if  

  ([audioPlayer isPlaying]){

 [sender setImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateSelected];

      [audioPlayer pause];

  } else {

 [sender setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateNormal];

      [audioPlayer play];

      self.timer = [NSTimer scheduledTimerWithTimeInterval:11 target:self selector:@selector(displayviewsAction:) userInfo:nil repeats:NO];
  }  

}

加载这些view controllers时,只想在每个viewcontroller签入,audioplayer暂停,invalidate timer如果没有,则继续加载viewcontroller { {1}}

NSTimer

我的问题是当我在- (void)displayviewsAction:(id)sender { FirstViewController *viewController = [[FirstViewController alloc] init]; viewController.view.frame = CGRectMake(0, 0, 320, 480); [self.view addSubview:viewController.view]; [self.view addSubview:toolbar]; if ([audioPlayer pause]){ [timer invalidate]; } else { self.timer = [NSTimer scheduledTimerWithTimeInterval:23 target:self selector:@selector(secondViewController) userInfo:nil repeats:NO]; } [viewController release]; } 方法中添加if语句时,它会向我发出displayviewAction的红色警告消息。

statement requires expression of scalar type (void invalid)中的if statement可以正常使用。

为什么playpauseAction的{​​{1}}会发出红色警告信息。

1 个答案:

答案 0 :(得分:1)

AVAudioPlayer的暂停定义为:

-(void)pause

所以写道:

if([audioPlayer pause]) {...}

对应于写:

if(void) {...}

和void不是标量类型,正是错误消息告诉您的内容。

可能你打算检查音频播放器是否暂停,即它没有播放:

if([audioPlayer isPlaying]==NO) {...}