2009-12-03 132 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 - 所有記錄時間的平均頻道功率,以及是否可能。