我们正在创建一个应用程序,它记录周围的声音并在声音超过指定分贝时采取必要的措施。
为了实现应用程序目标,我们使用 AudioQueueObject.h 中的以下方法
- (void) getAudioLevels: (Float32 *) levels peakLevels: (Float32 *) peakLevels {
UInt32 propertySize = audioFormat.mChannelsPerFrame * sizeof (AudioQueueLevelMeterState);
AudioQueueGetProperty(
self.queueObject,
(AudioQueuePropertyID)kAudioQueueProperty_CurrentLevelMeterDB,
self.audioLevels,
&propertySize);
levels[0] = self.audioLevels[0].mAveragePower;
peakLevels[0] = self.audioLevels[0].mPeakPower;
}
我们有以下一组查询
- 录制的声音显示从 -60 开始的分贝值。当声音变大时,这个值会继续增加。此对象记录的最大值为 0.0000。请解释我们如何解释这些值。
根据文档,它说我们得到的值是数字分贝,需要转换为模拟,请建议是否有任何方法可以做到这一点。
提前致谢