Посмотрите в структуре Audio Queue . Вот что я использую, чтобы получить высшую отметку:
AudioQueueRef audioQueue; // Imagine this is correctly set up
UInt32 dataSize = sizeof(AudioQueueLevelMeterState) * recordFormat.mChannelsPerFrame;
AudioQueueLevelMeterState *levels = (AudioQueueLevelMeterState*)malloc(dataSize);
float channelAvg = 0;
OSStatus rc = AudioQueueGetProperty(audioQueue, kAudioQueueProperty_CurrentLevelMeter, levels, &dataSize);
if (rc) {
NSLog(@"AudioQueueGetProperty(CurrentLevelMeter) returned %@", rc);
} else {
for (int i = 0; i < recordFormat.mChannelsPerFrame; i++) {
channelAvg += levels[i].mPeakPower;
}
}
free(levels);
// This works because one channel always has an mAveragePower of 0.
return channelAvg;
Вы можете получить пиковую мощность в свободном масштабе дБ (с kAudioQueueProperty_CurrentLevelMeterDB) или просто в виде числа с плавающей точкой в интервале [0.0, 1.0] (с kAudioQueueProperty_CurrentLevelMeter).