我在OS X上,我会在我说话的同时连续读取输入音量(就像Siri那样,对于强大的声音或弱音,显示紫色条高或低)。 我已经尝试过这段代码,但它返回“参数ID无效”:
UInt32 size = sizeof(AudioQueueLevelMeterState) * record_state.data_format.mChannelsPerFrame;
AudioQueueLevelMeterState *outValue = malloc(size);
OSStatus errorMsg = AudioQueueGetProperty (record_state.queue, kAudioQueueProperty_CurrentLevelMeter, &outValue, &size );
if (!errorMsg) {
printf("Volume: %f", outValue[0].mPeakPower);
}
else
{
printf("Er: %i", errorMsg);
}
我该怎么办? 感谢。
答案 0 :(得分:1)
您是否通过设置kAudioQueueProperty_EnableLevelMetering
属性启用了计量?如果没有,那可能是原因。