我在 iOS 5.0 下开发了一个 iPhone 应用程序,它运行良好。但是对于 iOS 4.3(Base SDK = latest iOS 5.0,compiler = Apple LLVM 3.0,Deployment Target = iOS 4.3),它在启动后崩溃。
崩溃点附近的输出如下所示:
2011-12-06 16:25:08.177 FMWei[466:c203] -[AVAudioSession setMode:error:]: unrecognized selector sent to instance 0x706a7f0
2011-12-06 16:25:08.181 FMWei[466:c203] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[AVAudioSession setMode:error:]: unrecognized selector sent to instance 0x706a7f0'
在我调用它时,它看起来AVAudioSession
没有成员函数。setMode:error:
但奇怪的是,我没有调用名称为setMode:error:
. 关于音频处理的代码是:
audio_session = [[AVAudioSession sharedInstance] retain];
audio_session_err = nil;
[audio_session setCategory: AVAudioSessionCategoryPlayAndRecord error:&audio_session_err];
NSLog(@"!");
UInt32 audioRouteOverride = 1;
AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryDefaultToSpeaker,sizeof (audioRouteOverride),&audioRouteOverride);
UInt32 allowMixing = 1;
AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(allowMixing), &allowMixing);
if (audio_session_err)
{
NSLog(@"audioSession: %@ %d %@", [audio_session_err domain], [audio_session_err code], [audio_session_err description]);
}
else
{
audio_session_err = nil;
[audio_session setActive:YES error:&audio_session_err];
if (!audio_session_err) NSLog(@"audio session is activated successfully");
}
请帮我弄清楚为什么它在 iOS 4.3 下崩溃并出现奇怪的错误。谢谢!