【问题标题】:In CoreAudio, what are the pros/cons of setting kAudioDevicePropertyBufferFrameSize?在 CoreAudio 中,设置 kAudioDevicePropertyBufferFrameSize 的优缺点是什么?
【发布时间】:2010-02-23 19:32:50
【问题描述】:

在 CoreAudio 中通过麦克风录音时,kAudioDevicePropertyBufferFrameSize 是做什么用的? docs 说它是 "A UInt32 whose value indicates the number of frames in the IO buffers"。但是,这并没有说明您为什么要设置它。

kAudioDevicePropertyBufferFrameSizeRange 属性为您提供缓冲区帧大小的有效最小值和最大值。将缓冲帧大小设置为最大值会减慢速度吗?您什么时候想将其设置为默认值以外的其他值?

【问题讨论】:

  • 这个常量在 iOS 中似乎不存在。你知道如何找到替代品吗?

标签: macos core-audio


【解决方案1】:

这是他们在CoreAudio list 上所说的话:

一个正在寻找低 延迟 IO 应将此值设置为 小到可以跟得上。

另一方面,不支持 有很大的交互需求或 低延迟的其他原因可以 增加此值以允许数据 被分成更大的块和 减少每秒的次数 IOProc 被调用。请注意,这 不一定会降低总 加载到系统上。实际上, 增加 IO 缓冲区大小可以 与缓冲区相反的影响 更大,这使它们更少 可能适合缓存,什么不适合 这真的会降低性能。

在一天结束时,价值 应用程序选择它的 IO 大小真的 依赖于应用程序的东西 以及它的作用。

【讨论】:

    【解决方案2】:

    通常您会将其保留为默认值,但如果您的处理链中有一个音频单元需要或针对特定缓冲区大小进行优化,您可能希望更改缓冲区大小。

    此外,通常较大的缓冲区大小会导致录制和播放之间的延迟较高,而较小的缓冲区大小会增加正在录制的每个通道的 CPU 负载。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-24
      • 1970-01-01
      • 2013-06-30
      • 1970-01-01
      • 2011-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多