如何播放音频先完成音频文件,然后开始播放?

如何播放音频先完成音频文件,然后开始播放?

问题描述:

我是iPhone的初学者。我已经采取了两个音频文件,但如何发挥的第一个成品,然后接下来上场只有一个方法...如何播放音频先完成音频文件,然后开始播放?

这是我的代码是....

-(IBAction)onclicksound 
{ 
    path=[[NSBundle mainBundle]pathForResource:@"Animalfile" ofType:@"plist"]; 
     dict=[[NSDictionary alloc]initWithContentsOfFile:path]; 
     NSError *error; 
     animalaudio=[dict valueForKey:@"Animalsound"]; 

     NSLog(@"animalaudio:%@",animalaudio); 
     NSLog(@"currentsound=%d",currentsound); 
     selectanimalaudio=[animalaudio objectAtIndex:currentsound]; 

     NSString *soundpath=[[NSBundle mainBundle]pathForResource:selectanimalaudio ofType:@""]; 
     NSLog(@"selectaudio:%@",selectanimalaudio); 
     AVAudioPlayer *audioplayer=[[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:soundpath] error:&error]; 
      if (error) 
      { 
       NSLog(@"Error in audioPlayer: %@", 
        [error localizedDescription]); 
      } 
      else 
      { 

       self.audiosound=audioplayer; 
       [audioplayer release]; 
       //audiosound.numberOfLoops=currentsound; 
       //[self.audiosound setDelegate:self]; 
       [audiosound play]; 
       NSLog(@"audioplayer:%@",audiosound); 
      } 


     NSError *err; 
     animalsecaudio=[dict valueForKey:@"Birdsound"]; 
     NSLog(@"animalaudio:%@",animalsecaudio); 
     // NSLog(@"currentsound=%d",currentsound); 
     selectanimalsecaudio=[animalsecaudio objectAtIndex:currentsound]; 
      NSLog(@"selectanimalsecaudio:%@",selectanimalsecaudio); 
     NSString *soundsecpath=[[NSBundle mainBundle]pathForResource:selectanimalsecaudio ofType:@""]; 
     AVAudioPlayer *audioplayerr=[[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:soundsecpath] error:&err]; 
     if (err) 
     { 
      NSLog(@"Error in audioPlayer: %@", 
        [err localizedDescription]); 
     } 
     else 
     { 

      self.animalsecsound=audioplayerr; 
      [audioplayerr release]; 
      //audiosound.numberOfLoops=currentsound; 
      [animalsecsound play]; 
      [animalsecsound prepareToPlay]; 
      // [self.animalsecsound setDelegate:self]; 
      NSLog(@"audioplayer:%@",animalsecsound); 
     } 
} 

因此,第二avaudioplayer怎么一个打后说完avaudioplayer给出任何建议和源代码..

+0

阅读常见问题。你应该接受有帮助的答案。如果你不这样做,人们会停止帮助。 – Almo 2012-07-19 14:05:51

您可以拨打AVAudioPlayer的委托方法audioPlayerDidFinishPlaying:

例如:

- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)sender successfully:(BOOL)success 
{ 
    if (success) 
     { 
      //code to play next sound 
     } 
}