使用AVAudioPlayer播放后停止播放音频

时间:2011-02-18 17:20:10

标签: iphone avaudioplayer

大家好,希望大家都能帮我解决这个问题。

我想要做的是当用户离开视图B观看A,播放音频时,当用户离开视图A观看B时,音频停止。

所以当用户离开视图B(从superview中删除viewB)回到视图A的主视图时,方法playIT& hahaPlay将被调用。当用户将视图A留给视图B(视图A添加子视图B)时,将调用stopPlaying方法。但这是我的问题,即使调用stopPlaying方法,音频也不会停止。我意识到警报已显示,但出于某种原因声明> [audioPlayer stop];无效。

我已经在头文件中定义了音频播放器,只是fyi。

以下所有方法都在viewcontroller中,名为soundView。

抱歉,我可能会以错误的方式做所有事情,也许你们中的一些人可以启发我并纠正我的错误?

-(void)playIT{

    filePath = [[NSBundle mainBundle] pathForResource:@"6431" 
                                               ofType:@"aiff"];
    fileURL = [[NSURL alloc] initFileURLWithPath:filePath];
    audioPlayer = [[AVAudioPlayer alloc] 
                   initWithContentsOfURL:fileURL error:nil];
}

-(void)hahaPlay{

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"playing" message:@" playing" delegate:nil cancelButtonTitle:@"Yep, I did." otherButtonTitles:nil];
    [alert show]; 
    [alert release]; 
    [audioPlayer prepareToPlay];
    if(![audioPlayer isPlaying]){

        [audioPlayer play];
    }

- (void)stopPlaying{
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Stop playing" message:@"Stop playing" delegate:nil cancelButtonTitle:@"Yep, I did." otherButtonTitles:nil];
    [alert show]; 
    [alert release]; 

    [audioPlayer stop];

}

1 个答案:

答案 0 :(得分:0)

也许您错误地丢失了某个地方的参考,尝试在停止呼叫附近设置断点,并在audioPlayeraudioPlayer的情况下检查nil。只是说因为通常这是我遇到大部分这类问题的原因......

还会做以下工作吗?

[audioPlayer pause]
audioPlayer.currentTime = 0;