2009-12-03 63 views
0

我正在使用语音识别来创建应用程序。要检查通过麦克风进入的音频电源,我写了一个如下的方法。AudioQueue上的音频电源

-(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 被视为最大值,mPeakPower低于1.0。

我认为这通常是不可能的。 请让我知道,如果你有任何关于CoreAudio声功率的信息。

谢谢。

+1

你在检查AudioQueueGetProperty返回的结果码(OSStatus)吗?出错时,这些值可能没有意义。 – diciu 2009-12-03 11:20:53

+0

感谢您的建议。我检查了OSStatus,但它是“noErr”... – Tomoyuki 2009-12-04 09:48:11

回答

0

我认为mPeakPower意味着CURRENT时刻的频道功率& mAveragePower - 所有记录时间的平均频道功率,以及是否可能。

相关问题