在OSX上确定当前硬件的缓冲率和SampleRate的方法

时间:2016-04-29 04:48:42

标签: macos avfoundation core-audio

我有一种方法,它依赖于知道硬件采样率和缓冲持续时间,以便计算一些值。目前在iOS上实现这一点如下:

double sampleRate = [[AVAudioSession sharedInstance] sampleRate];
double bufferDuration = [[AVAudioSession sharedInstance] IOBufferDuration];
float bufferLength = sampleRate*bufferDuration;

但是,在OSX上,AVAudioSession类无法识别,并且似乎不是SDK的一部分。关于这类事情的文档似乎很少。

如何在OSX OS上查询相同的值?

1 个答案:

答案 0 :(得分:1)

要确定缓冲区长度,请参阅上一个答案:OSX: CoreAudio API for setting IO Buffer length? 指着Apple技术说明中关于getter和setter的一些Core Audio属性:https://developer.apple.com/library/mac/technotes/tn2321/_index.html#//apple_ref/doc/uid/DTS40013499-CH1-THE_I_O_BUFFER_SIZE

要确定采样率,请参阅此前一个答案: CoreAudio get output sample rate 关于kAudioUnitProperty_SampleRate属性。