AudioQueue 读取输入音量
Posted
技术标签:
【中文标题】AudioQueue 读取输入音量【英文标题】:AudioQueue read input volume 【发布时间】:2012-12-03 21:22:31 【问题描述】:我在 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);
我该怎么办? 谢谢。
【问题讨论】:
【参考方案1】:您是否通过设置kAudioQueueProperty_EnableLevelMetering
属性启用了计量?如果不是,那可能是原因。
【讨论】:
不,我不知道。我应该在哪里做这个? 在你初始化你的音频队列之后,在你设置流描述之后。 好的,完成。它没有进入 else 块,但它在这里崩溃(EXC_BAD_ACCESS): printf("Volume: %f", outValue[0].mPeakPower);以上是关于AudioQueue 读取输入音量的主要内容,如果未能解决你的问题,请参考以下文章
如何在不使用 AudioQueueRef 的情况下在 AudioQueue 中设置音量?