Som*_*Guy 2 iphone audio ios ios7 sprite-kit
我的应用程序中的所有内容在常规使用中完全正常.但是,如果应用程序被电话中断,应用程序恢复时,播放声音文件的操作将不再播放声音文件.在电话通话之前,它每次都会播放.
关于导致什么/如何解决这个问题的任何想法?
使用SKAction运行音频对于将应用程序发送到后台的中断(如电话呼叫,按主页按钮等)不可靠......
解决方案是使用AVAudioPlayer代替短暂的声音效果.
你必须:
有关如何在iKnowSomething.com上执行此操作的详细说明,具体涉及:
使用[SKAction playSoundFileNamed:]的SpriteKit应用程序导致应用程序退出或进入后台崩溃.
在AppDelegate applicationDidEnterBackground中取消激活AVAudioSession:失败并显示错误(无效停用):错误域= NSOSStatusErrorDomain代码= 560030580"操作无法完成.(OSStatus错误560030580.)
在AVAudioSession中断(例如呼叫到达)上使用[SKAction playSoundFileNamed:]的SpriteKit应用程序无法重新激活(静音).
如何实现AVAudioPlayer代替SpriteKit [SKAction playSoundFileNamed:]?
LearnCocos2D还针对当应用程序进入后台并使用AVAudioPlayer时防止崩溃的问题写了一个很好的答案.
#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];
}
Run Code Online (Sandbox Code Playgroud)
他的原始答案就在这里.
| 归档时间: |
|
| 查看次数: |
649 次 |
| 最近记录: |