AudioSessionInitialize的修复已过时?

苹果公司没有在苹果开发者网站上发布任何替代代码。

你应该使用AVAudioSession。

要replace弃用的AudioSessionInitialize提供的function(例如,如果您需要指定AudioSessionInterruptionListenercallback),您可以订阅AVAudioSessionInterruptionNotification通知:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(audioSessionDidChangeInterruptionType:) name:AVAudioSessionInterruptionNotification object:[AVAudioSession sharedInstance]]; 

并实现你的audioSessionDidChangeInterruptionType:处理程序,如:

 - (void)audioSessionDidChangeInterruptionType:(NSNotification *)notification { AVAudioSessionInterruptionType interruptionType = [[[notification userInfo] objectForKey:AVAudioSessionInterruptionTypeKey] unsignedIntegerValue]; if (AVAudioSessionInterruptionTypeBegan == interruptionType) { } else if (AVAudioSessionInterruptionTypeEnded == interruptionType) { } } 

等效的代码

 // C way UInt32 category = kAudioSessionCategory_MediaPlayback ; OSStatus result = AudioSessionSetProperty( kAudioSessionProperty_AudioCategory, sizeof(category), &category ) ; if( result ) // handle the error 

 // Objective-C way NSError *nsError; [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&nsError]; if( nsError != nil ) // handle the error 

1.为这个代码

 AudioSessionInitialize( NULL, NULL, interruptionCallback, self ); 

用。。。来代替

 [[AVAudioSession sharedInstance] setActive:YES error:nil]; 

来自“权威词典”

 UInt32 sessionCategory = kAudioSessionCategory_PlayAndRecord; AudioSessionSetProperty( kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory ); 

用。。。来代替

 UInt32 sessionCategory = kAudioSessionCategory_PlayAndRecord; [[AVAudioSession sharedInstance] setCategory:sessionCategory error:nil];