Objective c 对象自动中断处理错误
我在(SpriteKit)游戏运行时一直在打电话,以测试中断。我正在使用对象文档中名为: 所以,我让库自动处理这个Objective c 对象自动中断处理错误,objective-c,sprite-kit,avaudiosession,interruption,objectal,Objective C,Sprite Kit,Avaudiosession,Interruption,Objectal,我在(SpriteKit)游戏运行时一直在打电话,以测试中断。我正在使用对象文档中名为: 所以,我让库自动处理这个 [OALAudioSession sharedInstance ]. handleInterruptions = YES 而且它只起了部分作用。例如,使用3种声音的简单设置,我会收到下一条错误消息: OALAudioSession activateAudioSession]:无法激活音频 尝试2次后的会话:错误域=NSOSStatusErrorDomain 代码=56101590
[OALAudioSession sharedInstance ]. handleInterruptions = YES
而且它只起了部分作用。例如,使用3种声音的简单设置,我会收到下一条错误消息:
OALAudioSession activateAudioSession]:无法激活音频
尝试2次后的会话:错误域=NSOSStatusErrorDomain
代码=561015905“操作无法完成。(OSStatus错误
561015905。)”
错误561015905==0x21706C61==!pla
,并参考AVAudioSession.h中声明的错误:
AVAudioSessionErrorCodeCannotStartPlaying='!pla',/*0x21706C61,
561015905
实际上这是可行的,有两次失败的尝试,第三次是成功的,什么都看不到,因为一切都很快,一切似乎都正常运转
我注意到,如果我添加更多的声音(比如20),我会收到相同的信息:
尝试20次后无法激活音频会话:
之后,会话被激活。然后,我只是在相关方法中添加了调试消息:
OALAudioSession.m
- (void) activateAudioSession
{
NSError* error;
for(int try = 1; try <= kMaxSessionActivationRetries; try++)
{
if([[AVAudioSession sharedInstance] setActive:YES error:&error])
{
NSLog(@"Session activated after %d", try);
audioSessionActive = YES;
return;
}
OAL_LOG_ERROR(@"Could not activate audio session after %d tries: %@", try, error);
[NSThread sleepForTimeInterval:0.2];
}
OAL_LOG_ERROR(@"Failed to activate the audio session");
}
-(void)activateAudioSession
{
n错误*错误;
对于(int try=1;try)我想在这里问你的问题:这些人对object al非常了解。当我被object al卡住时,我就是去问这个人的。@hamobi谢谢,我也会在那里问一下……我注意到,如果我设置AllowPod=NO和honorSilentSwitch=NO,我就不会出错。但这不是一个解决办法。