How stop mp3 playing started with audioplayer

Posted by bucche on Stack Overflow See other posts from Stack Overflow or by bucche
Published on 2010-04-28T09:26:38Z Indexed on 2010/04/28 9:33 UTC
Read the original article Hit count: 235

Filed under:
|
|

Hi,

My application consists of a table view. row1, row2, row3.... When a cell is touched a different mp3 starts to play (row1.mp3, row2.mp3, row3.mp3....).

it works!

but i have a problem: i am not able to stop previous mp3, so if i touch a second cell i have 2 mp3s playing... if i touch a third cell i have 3 mp3s and so on... i want to stop mp3 that started before and play mp3 that is related to touched cell...

during my tries, i created a variable to show some alerts if the player plays or not and when i am "inside the if" i used [myAudioPlayer stop].. i see the correct alert but mp3 doesn't stop.

here is my code

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {


 NSArray *elementi = [[array objectAtIndex:indexPath.row] componentsSeparatedByString:@"|"];

 NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/%@.mp3", [[NSBundle mainBundle] resourcePath],[elementi objectAtIndex:1]]];

    NSError *error;

 myAudioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
    myAudioPlayer.numberOfLoops = -1;

 if (inEsecuzione == 0) {
  UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"1" message:@"1" delegate:nil cancelButtonTitle:@"OK"otherButtonTitles:nil];
  [alert show];
  [alert release];
  [myAudioPlayer play];
  inEsecuzione = 1;

 }
 else {
  UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"2" message:@"2" delegate:nil cancelButtonTitle:@"OK"otherButtonTitles:nil];
  [alert show];
  [alert release];
  [myAudioPlayer stop];
  inEsecuzione = 0;

 }

}

as i wrote before, i am not able to stop previous mp3

© Stack Overflow or respective owner

Related posts about iphone

Related posts about avaudioplayer