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