2012-02-02 19 views
1

{[audioPlayer pause];}と表示されているExpected']'という赤い警告が表示され、という赤い警告メッセージが表示されます。Expected expressionです。再生/一時停止の切り替えが動作しない

UIButton *playpauseButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
[playpauseButton addTarget:self action:@selector(playpauseAction:) forControlEvents:UIControlEventTouchUpInside]; 
playpauseButton.frame = CGRectMake(0, 0, 50, 50); 
[playpauseButton setImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal]; 
[playpauseButton setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateSelected]; 

UIBarButtonItem *playpause = [[UIBarButtonItem alloc] initWithCustomView:playpauseButton]; 

アクションコード:

-(void)playpauseAction:(UIButton *)sender 
{ 
    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"theme" 
                ofType:@"mp3"]; 
    NSURL *fileURL = [[NSURL alloc] initFileURLWithPath:filePath]; 
    audioPlayer = [[AVAudioPlayer alloc] 
       initWithContentsOfURL:fileURL error:nil]; 

    [fileURL release]; 

    [audioPlayer prepareToPlay]; 

    audioPlayer.currentTime = 0; 
    //[audioPlayer play]; 

    if 

    ([audioPlayer isPlaying]){ 

Image:[UIImage imageNamed:@"play.png"] forState:UIControlStateSelected 

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

     {[audioPlayer pause];} 

    } else { 

setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateSelected 


Image:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal 


     [[audioPlayer play]; ] 

    } 


} 

私はこのコードを固定する際の助けを必要としています。

ありがとうございました。

答えて

1

メソッドの再生/一時停止部分全体が完全に無効です。Objective-C。これを代わりに試してみてください:

if ([audioPlayer isPlaying]) 
{ 
    [sender setImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal]; 
    [audioPlayer pause]; 
} 
else 
{ 
    [sender setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateNormal]; 
    [audioPlayer play]; 
} 

また、実際にはそのメソッドでaudioPlayerを再作成する必要はありません。あなたの-viewDidLoadまたは何かの中に(ここでは、 "それは"最初の行と 'if'の間のそのメソッドのすべてを意味する)それを入れてください。

+0

再生ボタンが表示されています。再生ボタンを押すとオーディオファイルが再生され、再生ボタンが一時停止ボタンになりますが、一時停止ボタンを押すと一時停止ボタンが表示されます。一時停止ではなく、最初からオーディオファイルを再生しています – user1120133

0

デリゲートを設定し、エラーをチェックしてみてください:それはのために(最初はnilかどうかをチェックしない限り、

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"theme" ofType:@"mp3"]; 
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL: [NSURL fileURLWithPath:filePath] error:&err]; 

if(err){ 
    NSLog(@"Failed with reason: %@", [err localizedDescription]); 
} else{ 
    //set our delegate and begin playback 
    audioPlayer.delegate = self; 
    [audioPlayer play]; 
} 

ところで、あなたは間違いなく、audioPlayerにボタンが押されるたびにallocingされないようにします最初に通過する)。

関連する問題