语音视频后台处理

iOS端音频模式 AVAudioSession

2022-04-18  本文已影响0人  YY110

转:https://baijiahao.baidu.com/s?id=1708682753422314151&wfr=spider&for=pc

音频输出作为硬件资源,对于iOS系统来说是唯一的,需要通过“AVAudioSession”这个系统级全局对象对各个App进行控制。

常见音频场景

通过“AVAudioSession”可以做什么操作

AVAudioSession默认行为

系统会在app启动的时候,激活这个全局唯一的AVAudioSession

音频模式七大场景

该场景由7个类别分别控制:

默认是:CategorySoloAmbient(独占播放)

上面介绍的七大类别,可以认为是设定了七种主场景,而这七类肯定是不能满足开发者所有的需求的。AVAudioSession提供的方法是,首先定下7种类别中的一种基调,再进行微调。AVAudioSession为每种Category都提供了些许选项来进行微调。

类别的选项

七大模式

每个模式有其适用的类别,可以根据具体需要做对应的组合。

音频通知

系统中断通知

如果app正在视频通话,突然来电话了、闹钟响了等,最常用的场景是先暂停,待恢复的时候再继续。app可以通过监听系统消息:AVAudioSessionInterruptionNotification来处理。系统消息userInfo主要包含两个键:

其他app占用通知

其他App占据AudioSession的时候用AVAudioSessionSilenceSecondaryAudioHintNotification来进行通知。其回调回来的userInfo键为:AVAudioSessionSilenceSecondaryAudioHintTypeKey

外设改变通知

默认情况下,AVAudioSession会在App启动时选择一个最优的输出方案,比如插入耳机的时候,就用耳机。但是这个过程中,用户可能拔出耳机,app可以通过监听系统消息:AVAudioSessionRouteChangeNotification来处理。

针对视频通话场景设置

类别:AVAudioSessionCategoryPlayAndRecord类别的选项:AVAudioSessionCategoryOptionAllowBluetoothAVAudioSessionCategoryOptionDefaultToSpeaker模式:AVAudioSessionModeVideoChat

上一篇 下一篇

猜你喜欢

热点阅读