音视频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. 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容