2012-11-24 77 views
0

我有兩個視圖控制器:停止AVAudioPlayer

MainMenuView:

- (void)viewDidLoad 
{ 
NSString *path = [[NSBundle mainBundle] pathForResource:@"BackgroundSound" ofType:@"mp3"]; 
    play =[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL]; 
    play.delegate=self; 
    [play play]; 
} 

和PlayAreaView:

- (void)counttimer 
{ 
    ///here is my code for NSTimer, if Timer is 0, Automatically I go to GameOver viewController 
    MainMenuView *vv = [[MainMenu alloc]init]; 
    [vv.play stop]; 
    GameOver *gv = [[GameOver alloc]init]; 
    [self presentViewController:gv animated:YES completion:nil]; 
} 

我去GAMEOVER之前,或者當我已經在遊戲結束圖,我想停止AVAudioPlayer從我的MainMenuView。請幫助。我試圖分配MainMenuView,並使用[MainMenu.play stop],但不起作用。

+0

PlayAreaView是在MainMenuView之前還是在它的對面? –

回答

0

首先,你應該給你的變量命名一點。在代碼中看到「[play play]」真的是奇怪的

其次,當我看着你「counttimer」的方法,我所看到的是你通過「alloc」 &「init」創建「MainMenuView」視圖控制器,並及時停止加載視圖甚至在播放器。

如果您想停止播放器,請確定您的「AVAudioPlayer」對象實際上已加載。

因此,在你的代碼,做這樣的事情:

if (vv.play) 
    [vv.play stop]; 
else 
    NSLog(@"vv.play is NULL, it doesn't exist yet"); 

這應該有助於你追查,其中合適的地方叫「stop」會。