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