Ios7 精灵套件奇怪的背景行为,在模拟器上与设备上不同

Ios7 精灵套件奇怪的背景行为,在模拟器上与设备上不同,ios7,sprite-kit,background-process,Ios7,Sprite Kit,Background Process,当我的精灵套件游戏进入后台时,我会收到一个通知,要求暂停游戏和背景音乐。通知是 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(willEnterBackground) name:UIApplicationDidEnterBackgroundNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:se

当我的精灵套件游戏进入后台时,我会收到一个通知,要求暂停游戏和背景音乐。通知是

[[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的教程,它停止播放,并通过播放和暂停重新启动。我将断点放在选择器方法中的所有行上,每个断点都是在使用模拟器时执行的。一切都按计划进行,当应用程序进入后台时,我的应用程序会随着音乐暂停。当我把它拿回来时,音乐又开始了,游戏就在它应该停止的地方继续


当我在iPhone上玩游戏时,问题就出现了,而不是通过Xcode。当我正常玩游戏时,我让应用程序进入后台,返回后,它会将我带到打开的屏幕,而不是模拟机中的游戏。我错过什么了吗?为什么它在手机上的行为会与模拟器不同呢。提前感谢您的帮助

查看昨天回答的上一个问题和解决我问题的链接


我相信您的问题是,进入后台时,音频会话仍然处于活动状态。

谢谢您的回复。然而,我用我的SKTAudio停下来,开始了这个课程。我甚至把后台声音调出来了,同样的问题仍然存在。我建议打开断点和所有异常,看看当错误进入后台时,在代码中的什么地方会产生错误。只要你在info.plist中将“application not run in the background”(应用程序不在后台运行)设置为“否”,那么它重新启动应用程序的原因是它在移动到后台时生成错误我设置了断点,但在运行Xcode时,我没有收到任何错误。一切正常。直到我自己在手机上运行它,重启才会发生。另外,我检查了plist,我找不到“应用程序未在后台运行”的条目,你在哪里找到的?嗯,我实际上能够在手机连接时重现行为,并且能够使用一些回溯,并发现是AVAudioSession造成的。我不知道为什么断点允许崩溃不发生,但这是另一天的问题!谢谢你给我指出了正确的方向!