iOS WebRTC中AVAudioSession

收藏点赞文章:
iOS 音频-AVAudioSession
iOS音频掌柜-- AVAudioSession

在WebRTC应用中,AudioUnit 使用的是Voice-Processing I / O unit (subtype kAudioUnitSubType_VoiceProcessingIO),使用内置的aec和agc等功能, AVAudioSession状态:
Category = AVAudioSessionCategoryPlayAndRecord,Mode = AVAudioSessionModeVoiceChat,无须显式的setMode,使用 Voice-Processing I / O unit 会自动切换为 VoiceChat,至于Options依实际业务情景需求设置。


  1. Category 切换成 AVAudioSessionCategoryPlayback:
    那么AudioUnit record cb 有回调,但是获取到的是静音数据。
  2. 使用AVAudioPlayer播放音频文件,音量非常低:
    可以通过调整mode解决, 播放音频文件时设置为 AVAudioSessionModeDefault,待播放完毕之后再设置为 AVAudioSessionModeVoiceChat。但是这个缺点是,切换成 default mode 后 失去了回音消除功能了。
    然而,像狼人杀的场景,需要一直播放背景音乐,又需要对话过程中回音消除,那么就需要好好的维护好 mode 和 option了。

你可能感兴趣的:(iOS WebRTC中AVAudioSession)