开发者

Cocoa audio issues

开发者 https://www.devze.com 2023-04-01 01:14 出处:网络
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.
  1. 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.

  2. 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

0

精彩评论

暂无评论...
验证码 换一张
取 消