gpt4 book ai didi

ios - Sprite Kit & 播放声音导致应用程序终止

转载 作者:IT王子 更新时间:2023-10-29 07:55:32 28 4
gpt4 key购买 nike

使用圆弧

只是我遇到的一个问题-我有一个 SKScene,我在其中使用 SKAction 类方法播放声音效果

[SKAction playSoundFileNamed:@"sound.wav" waitForCompletion:NO];

现在,当我尝试进入后台时,无论声音是否结束,显然 iOS 正在终止我的应用程序,原因是 gpus_ReturnNotPermittedKillClient

现在只有当我评论这一行并且不运行操作时,iOS 才会在后台运行它(当然,暂停,但没有终止)。

我做错了什么?

编辑:如果该行未运行,iOS 将不会终止该应用程序 - 比如说,如果它在未运行的 if 语句 (soundOn == YES) 或类似的东西,当 bool 为 false

最佳答案

问题是 AVAudioSession 在应用程序进入后台时无法激活。这不是很明显,因为 Sprite Kit 没有提到它在内部使用 AVAudioSession。

修复非常简单,也适用于 ObjectAL => 在应用程序处于后台时将 AVAudioSession 设置为非事件状态,并在应用程序进入前台时重新激活 Audio Session 。

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

#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];
}

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

关于ios - Sprite Kit & 播放声音导致应用程序终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18976813/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com