【发布时间】:2009-12-03 11:09:01
【问题描述】:
我现在正在使用语音识别创建一个应用程序。要检查通过麦克风输入的音频功率, 我写了一个方法如下。
-(void)checkPower(AudioqueRef)queue{
UInt32 expectedSize= sizeof(AudioQueueLevelMeterState);
AudioQueueGetProperty(queue,
kAudioQueueProperty_CurrentLevelMeter,
audioLevels,
expectedSize);
NSLog(@"average:%f peak:%f",audioLevels.mAveragePower,audioLevels.mPeakPower);
}
我发现有时 mAveragePower 比 mPeakPower 大, 当 mAveragePower 为 1.0 时,即 averagePower 被认为是max,mPeakPower低于1.0。
我认为一般来说这个结果是不可能的。 如果您有任何有关 CoreAudio 声音功率的信息,请告诉我。
谢谢。
【问题讨论】:
-
您是否正在检查 AudioQueueGetProperty 返回的结果代码(OSStatus)?出错时,这些值可能没有意义。
-
感谢您的建议。我检查了 OSStatus,但它是“noErr”...
标签: cocoa core-audio