APP启动的时候会自动激活AVAudioSession单例,但是建议在使用前再次进行激活。

AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation:通知中断的程序中断已经结束,可以恢复播放

获取设备支持的categories列表

AVAudioSession设置

AVAudioSessionCategory枚举:
AVAudioSessionCategoryAmbient 只支持播放

AVAudioSessionCategorySoloAmbient 系统默认,只支持播放

AVAudioSessionCategoryPlayback 只支持播放,常用于音乐播放类app,不会因锁屏而停止播放,后台播放

AVAudioSessionCategoryRecord 只支持录制

AVAudioSessionCategoryPlayAndRecord 支持录制及播放,可同时录制并播放

AVAudioSessionCategoryAudioProcessing 只支持本地音频编解码

AVAudioSessionCategoryMultiRoute 支持录制及播放,支持多条音频流的同步输入和输出,例如蓝牙耳机和蓝牙播放器可以同时使用

AVAudioSessionMode枚举:
AVAudioSessionModeDefault 系统默认mode

AVAudioSessionModeVoiceChat 适用于语音聊天

AVAudioSessionModeGameChat 适用于游戏模式,不需要主动设置。
适用GKVoiceChat对象时,系统会自动配置AVAudioSessionModeGameChat和AVAudioSessionCategoryPlayAndRecord。若不想用GKVoiceChat但希望达到类似功能,可以使用AVAudioSessionModeVoiceChat。

AVAudioSessionModeVideoRecording 适用于使用摄像头采集视频的应用

AVAudioSessionModeMeasurement

AVAudioSessionModeMoviePlayback 适用于AVAudioSessionCategoryPlayback下的视频播放

AVAudioSessionModeVideoChat 适用于视频聊天
设置mode为AVAudioSessionModeVideoChat,系统会自动配置AVAudioSessionCategoryOptionAllowBluetooth和AVAudioSessionCategoryOptionDefaultToSpeaker。会选择最佳的内置麦克风组合支持聊天。

AVAudioSessionModeSpokenAudio iOS9.0新添加的
当其他应用程序播放短暂的语音提示时,希望自己的音频暂停而不是回避(声音变小)时使用。

AVAudioSessionModeVoicePrompt 当程序内音频为简单的语音提示时使用。

AVAudioSessionCategoryOptions:

AVAudioSessionCategoryOptionMixWithOthers


AVAudioSessionCategoryOptionDuckOthers


AVAudioSessionCategoryOptionAllowBluetooth


AVAudioSessionCategoryOptionDefaultToSpeaker


AVAudioSessionCategoryOptionInterruptSpokenAudioAndMixWithOthers


AVAudioSessionCategoryOptionAllowBluetoothA2DP


AVAudioSessionCategoryOptionAllowAirPlay

