本文介绍了SpriteKit-多任务的正确方式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图在代码中到处搜索:解释文档在进入后台时它做了什么,或者它甚至在某个时候暂停,但无济于事 - 有人可以指导我在去时推荐做什么启用精灵套件的游戏背景?

我应该只调用 scene.paused = YES,或者我如何确认没有在后台发生绘图,这样我就可以避免被 iOS 终止,这不允许我这样做?

谢谢!

解决方案

如前所述 here by LearnCocos2D:

问题是应用进入后台时 AVAudioSession 无法激活.

修复非常简单,也适用于 ObjectAL =>当应用程序在后台时将 AVAudioSession 设置为非活动状态,并在应用程序进入前台时重新激活音频会话.

经过此修复的简化 AppDelegate 如下所示:

#import ...- (void)applicationWillResignActive:(UIApplication *)application{//防止音频崩溃[[AVAudioSession sharedInstance] setActive:NO er​​ror:nil];}- (void)applicationDidEnterBackground:(UIApplication *)application{//防止音频崩溃[[AVAudioSession sharedInstance] setActive:NO er​​ror:nil];}- (void)applicationWillEnterForeground:(UIApplication *)application{//恢复音频[[AVAudioSession sharedInstance] setActive:YES error:nil];}

PS:此修复将包含在 Kobold Kit v7.0.3 中.

I tried to search everywhere in the code:Explained documentry what it does when going to background, or if it is even paused sometime, but to no avail- can someone direct me in the way of what is recommended to do when going to background in sprite kit enabled game?

Should I just call scene.paused = YES, or how can I confirm that no drawing occurs in background so I can avoid termination by iOS which won't allow me that?

Thanks!

解决方案

As said here by LearnCocos2D:

#import <AVFoundation/AVFoundation.h>

...

- (void)applicationWillResignActive:(UIApplication *)application
{
    // prevent audio crash
    [[AVAudioSession sharedInstance] setActive:NO error:nil];
}

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    // prevent audio crash
    [[AVAudioSession sharedInstance] setActive:NO error:nil];
}

- (void)applicationWillEnterForeground:(UIApplication *)application
{
    // resume audio
    [[AVAudioSession sharedInstance] setActive:YES error:nil];
}

这篇关于SpriteKit-多任务的正确方式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

06-30 02:30