当我的精灵套装游戏进入后台时,我有一个NSNotification来暂停游戏和背景音乐。通知是......
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(willEnterBackground) name:UIApplicationDidEnterBackgroundNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(willEnterForeground) name:UIApplicationWillEnterForegroundNotification object:nil];
指示的两个选择器方法是..
- (void)willEnterForeground
{
SKView *skView = (SKView *)self.view;
skView.scene.paused = NO;
[[SKTAudio sharedInstance] resumeBackgroundMusic];
}
- (void)willEnterBackground
{
SKView *skView = (SKView *)self.view;
skView.scene.paused = YES;
[[SKTAudio sharedInstance] pauseBackgroundMusic];
}
SKTAudio sharedInstance来自Ray Wenderlich的教程并停止AVAudioSession并通过播放和暂停重新启动它。我在选择器方法的所有行上放置断点,并在使用模拟器时执行每个断点。一切都按计划运行,当应用程序进入后台时,我的应用程序会暂停音乐。当我把它带回来时,音乐会重新启动,游戏会在它停止的地方继续播放。
当我在iPhone上玩游戏时,问题出现了,而不是通过Xcode。当我正常玩游戏时,我让应用程序转到后台,返回时,它会将我带到我的打开屏幕而不是像模拟器中那样的游戏。我错过了什么吗?为什么手机在模拟器上的表现会有所不同。在此先感谢您的帮助!
答案 0 :(得分:1)
请参阅昨天回答的上一个问题和解决我问题的链接......
我相信你的问题是AVAudioSession在进入后台时仍然有效。