1. AVAudioSession
AVAudioSession,是用来管理多个APP间对音频硬件设备(麦克风,扬声器)的资源使用。
举例一下AVAudioSession可以做这些事情
- 设置自己的APP是否和其他APP音频同时存在,还是中断其他APP声音
- 在手机调到静音模式下,自己的APP音频是否可以播放出声音
- 电话或者其他APP中断自己APP的音频的事件处理
- 指定音频输入和输出的设备(比如是听筒输出声音,还是扬声器输出声音)
- 是否支持录音,录音同时是否支持音频播放
2. AVAudioSession Category
Category定义了七种主场景,每种Category都对应是否支持下面四种能力。
- Interrupts non-mixable apps audio:是否打断不支持混音播放的APP
- Silenced by the Silent switch:是否会响应手机静音键开关
- Supports audio input:是否支持音频录制
- Supports audio output:是否支持音频播放
Category | 是否允许音频播放/录音 | 是否打断其他不支持混音APP | 是否会被静音键或锁屏键静音 |
---|---|---|---|
AVAudioSessionCategorySoloAmbient | 只支持播放 | 是 | 是 |
AVAudioSessionCategoryAmbient | 只支持播放 | 否 | 是 |
AVAu |