I have 2 buttons, 1 turns to the next page and should play a sound at the same time but the sound doesn't seems to be working, I need your help on this please.
I have 4 pages and in each page there is a play button that play or stop the audio, but if I press play and press next to the next page, the audio will keep playing, how do I do so that if I press the next button, it will stop the music automatically. Thanks for your help, find below the code.
- (IBAction)next { // This part plays the next page turn noise NSURL *this = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/next.mp3", [[NSBundle mainBundle] resourcePath]]]; NSError *error; audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:this error:&error]; [audioPlayer setDelegate:self]; audioPlayer.numberOfLoops = 0; [audioPlayer play]; // This part takes us to the next view Rabbana2 *rab = [[Rabbana2 alloc] initWithNibName:@"Rabbana2" bundle:nil]; [UIView beginAnimations:@"flipView" context:Nil]; [UIView setAnimationDuration:2]; [UIView setAnimationCurve:UIViewAnimationOptionCurveEaseInOut]; [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES]; [self.view addSubview:rab.view]; [UIView commitAnimations]; } // This button plays the audio - (IBAction)play { if(clicked == 0){ clicked = 1; NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/rabbana1.wav", [[NSBundle mainBundle] resourcePath]]]; NSError *error; audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error]; [audioPlayer setDelegate:self]; audioPlayer.numberOfLoops = 0; [audioPlayer play]; [start setImage:[UIImage imageNamed:@"Sstop.png"] forState:UIControlStateNormal]; } else{ [audioPlayer release]; clicked = 0; [start setImage:[UIImage imageNamed:@"Pplay.png"] forState:UIControlStateNormal]; } } //If user does not do anything by the end of the sound set the button to start - (void) audioPlayerDidFinishPlaying: (AVAudioPlayer *) player successfully: (BOOL) flag { if (flag==YES) { clicked = 0; [start setImage:[UIImage imageNamed:@"Pplay.png"] forState:UIControlStateNormal]; } }
In your method which handles the page turn, you need to stop the current playing sound by using [audioPlayer stop] if it is playing
[audioPlayer stop]
1.4m articles
1.4m replys
5 comments
57.0k users