提问者:小点点

iOS中的分贝测量


我正在用Swift编程一个需要测量分贝的应用程序,并且我正在使用averagePowerLevel属性,但是这个属性的范围是-160到0,如果它超过0,它就不再测量它。 是否有任何性质或方法来测量分贝超过0的限制? 那就是,它们是否可以不加限制地被测量? 有没有超过0就不能测量的原因?


共1个答案

匿名用户

-160至0表示满量程范围,也称为dbFS(满量程db)。

  • 系统可处理的满量程最大声级为0 dB,超过该声级则削波。
  • –10 db满量程表示–10 db满量程表示比最大声级低/静音10 db.
  • -满量程160 db是系统可以记录的最安静的声音差异。

由于averagePowerLevel用于测量捕获通道中的电平,系统无法在满量程中产生超过0 db的波形,因此对其进行了限幅。 因此,满量程下测量值不超过0 db是合理的。

然而,对于播放声道,如果在满量程中为系统提供大于0 db的电平,则[AVAudioPlayer averagePowerForChannel]将返回该值,即使系统可能仅以其最大能力电平(满量程中为0 db)播放