0

我有两个视图控制器:

主菜单视图:

- (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],但不起作用。

4

1 回答 1

0

首先,您应该稍微不同地命名变量。[play play]在代码中看到“ ”真的很奇怪

其次,当我查看您的 " counttimer" 方法时,我看到的是您通过 " " & " " 创建了您的 " MainMenuView" 视图控制器,并在加载视图之前立即停止播放器。allocinit

如果您想停止播放器,请确保您的 " AVAudioPlayer" 对象已实际加载。

所以在你的代码中,做这样的事情:

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

这应该可以帮助您找到合适的位置来调用“ stop”。

于 2012-11-24T14:49:49.193 回答