音视频AVAudioSession

//音频状态:用于非以语音为主的应用,使用这个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. 

你可能感兴趣的:(音视频AVAudioSession)