周囲の音を録音し、指定されたデシベルを超えた場合に必要なアクションを実行するアプリケーションを作成しています。
アプリケーションの目的を達成するために、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です。これらの値の解釈方法を教えてください。
ドキュメントによると、私たちが得ている値は、アナログに変換する必要があるデジタルデシベルであると書かれています。それを行う方法があるかどうかを提案してください。
前もって感謝します