AVAudioRecorder的最小音频类型是什么

时间:2015-03-07 11:26:26

标签: ios swift audio avaudiorecorder

我正在使用objective-c和Xcode 6.1.1。

我想用AVAudioRecorder录制一些音频。 首先,我搜索了所有支持的音频类型并找到了:

 1. AAC
 2. ALAC //Bigger then AAC
 3. IMA4
 4. ILBC //For voice recorder (not suitable for me personally )
 5. ULAW //For voice recorder (not suitable for me personally )
 6. PCM  //Uncompressed (thus will be bigger)

LINK

现在我在网上搜索并发现了一些关于“无懈可击”的东西,但是对于其他人来说,我是声音,BPM,比特率等的总体菜鸟。

问题:上述6中哪一个可以是具有相同音频的最小文件大小?

问题:.caf是一个容器,但Apple在该容器中使用的是什么?

(质量略有下降没问题)

更新:

  1. 根据此LINK AAC小于ALAC。
  2. 我确实想录制更多声音,因此ILBC不是LINK
  3. 选项
  4. PCM似乎是未压缩的,很可能比其他LINK
  5. 更大
  6. ULAW(我刚刚学到的μ律;))也用于语音LINK
  7. 在第4点的链接中,我想我得到了我的最终答案:

    因此,为了选择您的数据格式,以下是一些规则     一般适用:

    1. 如果空间不是问题,只需使用线性PCM对所有内容进行编码即可。这不仅是您播放音频的最快方式,而且 你可以同时播放多个声音,而不会遇到任何声音 CPU资源问题。

    2. 如果空间有问题,很可能你会想要 使用AAC编码为您的背景音乐和IMA4编码 你的声音效果。

    3. 以上都是正确的吗?

1 个答案:

答案 0 :(得分:3)

MPEG 4 AAC是iOS设备上压缩音频的最佳选择。 它具有硬件编解码器支持(MPEG 4 AAC LC)。

不幸的是,VBR模式最节省空间,此时暂不可用。 (Docs反过来说,但实际上AVAudioRecorder仅以恒定的比特率记录。我通过联系有偿支持来解决这个问题。 我相信你应该以96KBps比特率开始,如果还不够,那么就增加它。

我的录音设置(Swift):

[
AVFormatIDKey : kAudioFormatMPEG4AAC as NSNumber,
AVSampleRateKey : AVAudioSession.sharedInstance().sampleRate as NSNumber,
AVNumberOfChannelsKey : 1 as NSNumber,
AVEncoderBitRatePerChannelKey : kBpsBitrate * 1_000 as NSNumber,
AVEncoderAudioQualityKey: AVAudioQuality.High.rawValue as NSNumber
]