AVAudioRecorder

iOS录音- AVAudioRecorder

音频采集 - PCM编码

1
模拟信号数字化必须经过三个过程,即抽样、量化和编码,以实现话音数字化的脉冲编码调制(PCM,Pulse Coding Modulation)技术
  • 抽样
  • 量化
  • - 编码
    • 抽样频率(Sampling Rate): 人对频率的识别范围是 20HZ - 20000HZ, 如果每秒钟能对声音做 20000 个采样, 回放时就足可以满足人耳的需求. 所以 22050 的采样频率是常用的, 44100已是CD音质, 超过48000的采样对人耳已经没有意义。这和电影的每秒 24 帧图片的道理差不多
    • 位宽(bit depth): 每一个采样点都需要用一个数值来表示大小,这个数值的数据类型大小可以是:4bit、8bit、16bit、32bit 等等,位数越多,表示得就越精细,声音质量自然就越好,而数据量也会成倍增大。我们在音频采样过程中常用的位宽是 8bit 或者 16bit
    • 声道数(channels): 声道数为 1 和 2 分别称为单声道和双声道 (iPhone只有一个麦克风,一个单声道的通道足够了,它把你的数据需求削减了一半)
    • 比特率(bit rate): 表示经过编码(压缩)后的音频数据每秒钟需要用多少个比特来表示,单位常为kbps

音频压缩

常见的音频编码格式: MP3、AAC、WAV

音频基础概念及常见编码格式

AVAudioSession

  • Category
Category 是否允许音频播放/录音 是否打断其他不支持混音APP 是否会被静音键或锁屏键静音
ambient 只支持播放
soloAmbient (默认) 只支持播放
playback 只支持播放 ✅,可以重写为❎
record 只支持录制 ❎(锁屏下仍可录制
playAndRecord 支持播放,支持录制 ✅,可以重写为❎
audioProcessing 不支持播放,不支持录制
multiRoute 支持播放,支持录制
  • Mode

session mode

  • Options

session options

  • 激活 AVAudioSession.sharedInstance().setActive(true)