//音频状态:用于非以语音为主的应用,使用这个category的应用会随着静音键和屏幕关闭而静音。并且不会中止其它应用播放声音,可以和其它自带应用如iPod,safari等同时播放声音。注意:该Category无法在后台播放声音
AVAudioSession *avdioSession = [AVAudioSession sharedInstance];
//判断是否可用此category
NSArray *array = avdioSession.availableCategories;
if ([array containsObject:AVAudioSessionCategoryAmbient]) {
//判断当前的category
if (![avdioSession.category isEqualToString:AVAudioSessionCategoryAmbient]) {
NSError *aError = nil;
[avdioSession setCategory:AVAudioSessionCategoryAmbient error:&aError];
NSError *error = nil;
[avdioSession setActive:NO withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:&error];
}
}
在App中如果用AVAudioSession setActive等来中断其它播放器,当自己App中播放完毕,一般要恢复其它播放器。
NSError *err;
[[AVAudioSession sharedInstance] setActive:NO withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:&err];
setActive:YES与setActive:NO一般要成对出现。
没有setActive:YES然后就setActive:NO会抛异常:
AVAudioSession.mm:623: -[AVAudioSession setActive:withOptions:error:]: Deactivating an audio session that has running I/O. All I/O should be stopped or paused prior to deactivating the audio session.