我有一种方法,它依赖于知道硬件采样率和缓冲持续时间,以便计算一些值。目前在iOS上实现这一点如下:
double sampleRate = [[AVAudioSession sharedInstance] sampleRate];
double bufferDuration = [[AVAudioSession sharedInstance] IOBufferDuration];
float bufferLength = sampleRate*bufferDuration;
但是,在OSX上,AVAudioSession
类无法识别,并且似乎不是SDK的一部分。关于这类事情的文档似乎很少。
如何在OSX OS上查询相同的值?
答案 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属性。